【问题标题】:How does kubectl know which KUBECONFIG config file to use?kubectl 如何知道要使用哪个 KUBECONFIG 配置文件?
【发布时间】:2023-02-04 01:13:52
【问题描述】:

过去,我使用 $HOME/.kube/config 从 Rancher 下载 kubeconfig 文件。 只有一个 kubeconfig 文件(参见docs),所以我从来没有想过正在使用哪个文件。

昨天,我切换到使用 KUBECONFIG 环境变量,因为我现在正在使用几个 k8s 集群(prod、stg、dev),这就是 devops 团队告诉我要做的,所以我做到了(并且成功了)。为了便于讨论,命令是:

export KUBECONFIG=$HOME/.kube/config-prod:$HOME/.kube/config-stage

所以现在我可以使用以下命令来使用临时 K8S 集群。

kubectl config current-context
# verify I'm in the using the right k8s config, and switch if necessary
kubectl config use-context dev    <<< WHERE DOES kubectl store this setting???
kubectl config set-context --current --namespace MyDeploymentNamespace
kubectl get pods

我的问题是kubectl 如何知道正在使用哪个 kube 配置文件?它在哪里存储当前选择的上下文?

或者相反

kubectl 是否在逻辑上连接 KUBECONFIG 环境变量中定义的所有 kubeconfig 文件以访问任何已定义的 Kubernetes 集群?

寻找答案

我找到了类似问题的几个答案,但不是这个问题。

其中解释了如何将文件

kubectl config current-context -v6
I0203 14:59:05.926287   30654 loader.go:375] Config loaded from file:  /home/user1/.kube/config
dev

我想问这些信息存储在哪里?

我唯一的猜测是在 $HOME/.kube/cache 目录中,我在其中找到了大量文件。

一些 Kubernetes 文档

【问题讨论】:

    标签: kubectl


    【解决方案1】:

    看:

    kubeconfig 文件包含clusterscontextsusers 的部分,还有一个current-context 属性,它存储kubectl config current-context 的值并由kubectl config use-context 修改。

    根据Merging kubeconfig files 中的规则,第一次出现例如current-context 是获胜的值。

    【讨论】:

      猜你喜欢
      • 2016-04-07
      • 1970-01-01
      • 2013-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-04
      相关资源
      最近更新 更多