大家好,欢迎来到IT知识分享网。
1.认识 kubeconfig
- current-context 选择 context 操作相应集群
- context 将 user 与 cluster 联系起来
- cluster是 cluster(K8S 集群)的名称代号
- user是访问 cluster(K8S 集群)的用户账号代号
name是这个上下文的名称代号
- user 提供要操作集群的 cert 与 key
- name是用户账号的名称代号
- user/token是用户的 token 认证方式,token 不是用户认证的唯一方式,其他还有账号+密码等。
- cluster 提供集群的 ca 与 集群的入口地址
- name是这个 cluster(K8S 集群)的名称代号
- server是这个 cluster(K8S 集群)的访问方式,一般为 IP+PORT
- certificate-authority-data是证书数据,只有当 cluster(K8S 集群)的连接方式是 https 时,为了安全起见需要证书数据
$ kubectl config --help Available Commands: current-context 显示当前上下文 delete-cluster 删除kubeconfig文件中指定的集群 delete-context 删除kubeconfig文件中指定的context delete-user 删除kubeconfig文件中指定的user get-clusters 显示kubeconfig文件中定义的集群 get-contexts 显示一个或多个contexts get-users 显示kubeconfig文件中定义的users rename-context 重命名kubeconfig文件里的context set 在kubecconfig文件中设置一个单独的值 set-cluster 在kubecconfig中设置集群条目 set-context 在kubecconfig中设置上下文条目 set-credentials 在kubecconfig中设置一个用户条目 unset 取消kubecconfig文件中单个值的设置 use-context 在kubecconfig文件中设置当前上下文(kubecconfig文件可以有多个上下文) view 显示合并的 kubeconfig 配置或一个指定的 kubeconfig 文件
2.kubeconifg 使用
- kubectl 自动加载 ~/.kube/config
- 如果指定 $KUBECONFIG, 从 $KUBECONFIG加载
- 也可以通过 kubectl 指定: kubectl config get-contexts –kubeconfig=/root/.kube/config1
apiVersion: v1 clusters: - cluster: certificate-authority-data: LS0tLS1CRUdJTiBD...... server: https://11.0.1.100:16443 # 指定集群的入口 name: kubernetes contexts: - context: cluster: kubernetes user: kubernetes-admin name: kubernetes-admin@kubernetes current-context: kubernetes-admin@kubernetes # 指定当前 context 上下文 kind: Config preferences: { } users: - name: kubernetes-admin user: client-certificate-data: ...... client-key-data: ......
2.1 生成 context
# 获取 kubeconfig 中所有 cluster $ kubectl config get-clusters NAME kubernetes $ kubectl config set-context test --cluster=kubernetes --user=kubernetes-admin --kubeconfig=/root/.kube/config --namespace=test # --kubeconfig kubeconfig 是默认路径可省略 # --namespace 指定 context 的默认 namespace, 没有即为 default
...... contexts: - context: cluster: kubernetes user: kubernetes-admin name: kubernetes-admin@kubernetes - context: # 新增 context cluster: kubernetes namespace: test user: kubernetes-admin name: test ...
2.2 切换 context 上下文
# 查看当前 context $ kubectl config current-context kubernetes-admin@kubernetes # 查看 kubeconfig 中所有 context $ kubectl config get-contexts CURRENT NAME CLUSTER AUTHINFO NAMESPACE kubernetes-admin@kubernetes kubernetes kubernetes-admin * test kubernetes kubernetes-admin test # 切换 context $ kubectl config use-context test Switched to context "test". # 创建 pod | 默认在 test namespace 下创建 $ k get po NAME READY STATUS RESTARTS AGE nginxpod 1/1 Running 0 14m
2.3 多集群管理
因集群配置有 vip, 本文将新增一个 cluster 直接指向 master apiserver 的地址, 所以, cluster 的 ca 不变
$ cat ~/.kube/config apiVersion: v1 clusters: - cluster: certificate-authority-data: LS0tLS1CRUdJTiBD...... server: https://11.0.1.100:16443 name: kubernetes - cluster: certificate-authority-data: LS0tLS1CRUdJTiBD...... server: https://11.0.1.150:6443 name: direct-cluster contexts: - context: cluster: kubernetes user: kubernetes-admin name: kubernetes-admin@kubernetes - context: cluster: kubernetes namespace: test user: kubernetes-admin name: test current-context: test kind: Config preferences: {
} users: - name: kubernetes-admin user: client-certificate-data: ...... client-key-data: ......
创建 context
# 默认 namespace 为 default $ kubectl config set-context direct --user=kubernetes-admin --cluster=direct-cluster # 切换 context $ kubectl config use-context direct $ kubectl get po No resources found in default namespace.
新增 context
...... contexts: - context: cluster: kubernetes user: kubernetes-admin name: kubernetes-admin@kubernetes - context: cluster: kubernetes namespace: test user: kubernetes-admin name: test - context: # 新增 context cluster: direct-cluster user: kubernetes-admin name: direct ...
3.Api 使用
列出所有上下文信息。
kubectl config get-contexts
查看当前的上下文信息。
kubectl config current-context
更改context信息
kubectl config use-context ${CONTEXT_NAME}
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/135664.html