本地连接阿里云多个k8s集群

445 阅读1分钟
准备两个config

$HOME/.kube目录下新建两个配置文件,分别叫config_grayconfig_pro,命名自己定就可以。

配置config

打开 阿里云 的 容器服务 Kubernetes 版,找到你要连接的集群,如下图所示:

image.png 我这里要连接的是预发环境gray和生产环境pro,然后打开集群的详情页。

打开 连接信息tab,里面有内网访问的配置信息,将其复制到config_gray文件中。

image.png

1. config_gray的配置信息
# config_gray
apiVersion: v1
clusters:
- cluster:
    server: https://10.0.0.0:4443
    certificate-authority-data: xxx
  name: gray
contexts:
- context:
    cluster: gray # 这里改成你定义的名字
    user: gray # 这里改成你定义的名字
  name: gray # 这里改成你定义的名字
current-context: gray # 这里改成你定义的名字
kind: Config
preferences: {}
users:
- name: gray # 这里改成你定义的名字
  user:
    client-certificate-data: xxx
    client-key-data: xxx
2. config_pro的配置信息
# config_pro
apiVersion: v1
clusters:
- cluster:
    server: https://10.0.0.1:5443
    certificate-authority-data: xxx
  name: pro # 这里改成你定义的名字
contexts:
- context:
    cluster: pro # 这里改成你定义的名字
    user: pro # 这里改成你定义的名字
  name: pro # 这里改成你定义的名字
current-context: pro # 这里改成你定义的名字
kind: Config
preferences: {}
users:
- name: pro # 这里改成你定义的名字
  user:
    client-certificate-data: xxx
    client-key-data: xxx
3. 执行合并配置命令
cd ~/.kube
KUBECONFIG=config_gray:config_pro kubectl config view --flatten > $HOME/.kube/config

执行完以上步骤后,在 .kube 目录下就会生成config文件。

如何使用?
1. 查看cluster name以及context name
[root@node-01 ~] kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://172.17.92.141:6443
  name: gray
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://172.27.6.183:6443
  name: pro
contexts:
- context:
    cluster: gray
    user: gray
  name: gray
- context:
    cluster: pro
    user: pro
  name: pro
current-context: pro
kind: Config
preferences: {}
users:
- name: gray
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED
- name: pro
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED

以上是可以看到两个cluster,两个context,两个user,就是对的了。

2. 查看当前使用的集群
[root@node-01 ~] kubectl config current-context
pro
3. 查看集群列表
[root@node-01 ~] kubectl config get-contexts
CURRENT   NAME   CLUSTER   AUTHINFO   NAMESPACE
          gray   gray      gray
*         pro    pro       pro

带 * 的就是当前使用的集群

4. 修改当前使用的集群
[root@node-01 ~] kubectl config use-context gray
Switched to context "gray".