- kubectl 通过
~/.kube/config
文件完成其自身的配置,比如默认操作的cluster,context,namespace等。 - Cluster表示一个k8s集群,最重要的配置是集群中API server的URL,另外通常需要通过
certificate-authority-data
配置CA证书。 - Users表示用户,先配置顶层用户,再将用户与cluster进行关联。user可以的认证信息可以配置username/password,authentication token或者client key等。
- Context用于将cluster与user进行关联,多个context可以指向相同的user或者cluster,另外,context需要配置在cluster下的默认namespace。
- Current context配置项用于指定当前操作的context,进而指定当前是由谁操作的是哪个cluster。
-
~/.kube/config
文件中有4个顶级配置项:clusters,users,contexts和current-context,需要注意的是users并不位于clusters之下。cluster和user关联行程context。可以直接对该文件进行修改,也可以通过kubectl config
命令进行修改。 - 创建cluster:
kubectl config set-cluster my-other-cluster
\ --server=https://k8s.example.com:6443
\ --certificate-authority=path/to/the/cafile
- 创建用户:
kubectl config set-credentials foo --username=foo --password=pass
- 创建context:
kubectl config set-context some-context
\ --cluster=my-other-cluster
\ --user=foo
\ --namespace=bar
- 获取current context:
kubectl config current-context
- 切换current context:
kubectl config use-context my-other-context
- 为context更改默认的namespace:
kubectl config set-context minikube --namespace=another-namespace
- To easily switch between namespaces, define an alias like this:
alias kcd='kubectl config set-context $(kubectl config current-context) --namespace '
You can then switch between namespaces with kcd some- namespace.
- 获取所有cluster:
kubectl config get-clusters
- 查看所有context:
kubectl config get-contexts
- master机器也需要安装kubelet,因为master机器上的kubelet会根据
/etc/kubernetes/manifests
文件内容启动control plane的各个组件,比如api server,scheduler等。 - master上的
/etc/kubernetes/admin.conf
文件可以直接拷贝成~/.kube/config
文件以供kubectl使用。 - 可以在
~/.kube
目录下创建多个config文件,而不用将所有cluster都糅合在一起,然后通过KUBECONFIG环境变量指定kubectl使用的配置文件:
export KUBECONFIG=~/.kube/config2
网友评论