指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub

kubectl操作多个k8s集群的方法:

需要合并 kubeconfig,如下操作就可以了,后面只用一个 --flatten即可,不要 --merge,否则,后面的会覆盖之前的config,血泪教训,因为腾讯的 serveless 文档就是这么操作的,非常坑
[root@k8smaster tmp]# cp ~/.kube/config ~/.kube/config.bak //一定要先备份之前的config,方便还原
[root@k8smaster tmp]# KUBECONFIG=~/.kube/config:/usr/local/k8s_tencent_kubeconfig/cls-m3mx4sot-config kubectl config view --flatten > /tmp/config
[root@k8smaster tmp]# mv /tmp/config ~/.kube/config
[root@k8smaster tmp]# export KUBECONFIG=~/.kube/config

查看集群下所有config的内容:

[root@k8smaster tmp]# kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://xx.xx.xx.xx:443/
  name: cls-m3mx4sot
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://xx.xx.xx.xx:6443
  name: kubernetes
contexts:
- context:
    cluster: cls-m3mx4sot
    user: "100021763219"
  name: cls-m3mx4sot-100021763219-context-default
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: cls-m3mx4sot-100021763219-context-default
kind: Config
preferences: {}
users:
- name: "100021763219"
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED
- name: kubernetes-admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED
[root@k8smaster tmp]#

获取多个集群环境:

[root@k8smaster tmp]# kubectl config get-contexts

[root@k8smaster tmp]# kubectl config current-context
cls-m3mx4sot-100021763219-context-default
[root@k8smaster tmp]#

切换k8s集群环境:
[root@k8smaster tmp]# kubectl config use-context cls-3jju4zdc-context-default

测试以下默认名称空间下的node:
[root@k8smaster tmp]# kubectl get node

实际应用中其实是这么操作的:
kubectl 使用 --kubeconfig 指定 config 文件地址访问不同的集群
比如下面的操作:
[root@k8smaster ~]# kubectl --kubeconfig ~/.kube/config get nodes  // ~/.kube/config 为集群配置文件(config文件路劲可以任意定义,这里只是用了默认的路径),这里可能是腾讯云上的 A 集群配置,也可以是腾讯云上的 B 集群配置,也可以是其它的
[root@k8smaster ~]# kubectl --kubeconfig ~/.kube/config apply -f service.yaml // 在指定集群下启动服务