scribble

466300750.github.io

Blog GitHub

20 Sep 2020
Kubernetes 使用 kubeconfig 文件组织集群访问

定义集群、用户和上下文

创建名为 config-exercise 的目录。 在 config-exercise 目录中,创建名为 config-demo 的文件,其内容为:

apiVersion: v1
kind: Config
preferences: {}

clusters:
- cluster:
  name: development
- cluster:
  name: scratch

users:
- name: developer
- name: experimenter

contexts:
- context:
  name: dev-frontend
- context:
  name: dev-storage
- context:
  name: exp-scratch

进入 config-exercise 目录。 输入以下命令,将群集详细信息添加到配置文件中:

kubectl config --kubeconfig=config-demo set-cluster development --server=https://1.2.3.4 --certificate-authority=fake-ca-file
kubectl config --kubeconfig=config-demo set-cluster scratch --server=https://5.6.7.8 --insecure-skip-tls-verify

将用户详细信息添加到配置文件中:

kubectl config --kubeconfig=config-demo set-credentials developer --client-certificate=fake-cert-file --client-key=fake-key-seefile
kubectl config --kubeconfig=config-demo set-credentials experimenter --username=exp --password=some-password

将上下文详细信息添加到配置文件中:

kubectl config --kubeconfig=config-demo set-context dev-frontend --cluster=development --namespace=frontend --user=developer
kubectl config --kubeconfig=config-demo set-context dev-storage --cluster=development --namespace=storage --user=developer
kubectl config --kubeconfig=config-demo set-context exp-scratch --cluster=scratch --namespace=default --user=experimenter

kubectl config --kubeconfig=config-demo view查看指定配置文件的详细信息。

kubectl config --kubeconfig=config-demo use-context dev-frontend设置当前上下文。

使用 –minify 参数,来查看与当前上下文相关联的配置信息。kubectl config --kubeconfig=config-demo view --minify

创建第二个配置文件

在 config-exercise 目录中,创建名为 config-demo-2 的文件,其中包含以下内容:

apiVersion: v1
kind: Config
preferences: {}

contexts:
- context:
    cluster: development
    namespace: ramp
    user: developer
  name: dev-ramp-up

设置 KUBECONFIG 环境变量

export KUBECONFIG=$KUBECONFIG:config-demo:config-demo-2

这时候再用kubectl config view查看,则是所有文件合并后的信息。

$HOME/.kube 目录

环境变量 KUBECONFIG 不是必需的,如果它不存在,kubectl 就使用默认的 kubeconfig 文件 $HOME/.kube/config。

如果还未列在KUBECONFIG环境变量中,那么现在将它追加到KUBECONFIG环境变量中。


Til next time,
at 09:42

scribble