一. 概述
需要使用kubectl连接多个k8s集群, 所以在这里做一个记录.
二.安装kubectl
macOS 下直接使用 homebrew 管理工具进行安装:
确认是否安装成功:
其他系统安装方式详见 Install and Set Up kubectl。
三. 配置.
先说一下, 在配置的时候,需要通过kubectl config xxx
指令配置三部分内容.
- 设置集群信息
# 配置集群名称与服务地址
kubectl config --kubeconfig=${HOME}/.kube/config set-cluster cluster-name --server=https://{IP} --insecure-skip-tls-verify
- 设置用户信息,用户连接集群
# 设置一个管理 标识为 k8s-cluster ,并设置访问凭证。此处使用 用户名-密码 的验证方式
kubectl config --kubeconfig=${HOME}/.kube/config set-credentials k8s-cluster --username=username --password=pwd
kubectl config --kubeconfig=${HOME}/.kube/config set-credentials k8s-cluster --client-certificate=fake-cert-file --client-key=fake-key-seefile
- 设置context信息, 用于建立用户和集群的关系.
# 设置一个名为 k8s-cluster 的配置,使用 cluster-name 集群与 k8s-cluster 用户的上下文
kubectl config --kubeconfig=${HOME}/.kube/config set-context k8s-cluster --cluster=cluster-name --namespace=default --user=username
- 切换默认的context
# 启用 k8s-cluster 为默认上下文
kubectl config --kubeconfig=${HOME}/.kube/config use-context k8s-cluster
- 删除信息相关操作
要删除用户,可以运行 kubectl --kubeconfig=${HOME}/.kube/config config unset users.<name>
要删除集群,可以运行 kubectl --kubeconfig=${HOME}/.kube/config config unset clusters.<name>
要删除上下文,可以运行 kubectl --kubeconfig=${HOME}/.kube/config config unset contexts.<name>
四. 配置文件地址(可以直接修改)
- 参考示例:
apiVersion: v1
clusters:
- cluster:
insecure-skip-tls-verify: true
server: https://127.0.0.1:11081
name: xxxcloud
- cluster:
certificate-authority-data: LS0tLS1CRUd....
server: https://kubernetes.docker.internal:6443
name: docker-desktop
- cluster:
insecure-skip-tls-verify: true
server: https://127.0.0.1:16443
name: fi-k8s
contexts:
- context:
cluster: xxxcloud
namespace: scheduler
user: netease
name: default
- context:
cluster: docker-desktop
user: docker-desktop
name: docker-desktop
- context:
cluster: fi-k8s
namespace: default
user: kubernetes-admin
name: fi-k8s-default
- context:
cluster: fi-k8s
namespace: scheduler
user: kubernetes-admin
name: fi-k8s
- context:
cluster: xxxcloud
user: netease
name: scheduler
current-context: default
kind: Config
preferences: {}
users:
- name: docker-desktop
user:
client-certificate-data: LS0tLS1CRUdJ............
client-key-data: LS0tLS1CRUdJTiBS....
- name: kubernetes-admin
user:
client-certificate-data: LS0tLS1...
client-key-data: LS0tLS1CRUdJT...
- name: netease
user:
token: eyJhbGciOiJSU....