kutectl的使用

  • 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

推荐阅读更多精彩内容