如何在一个Google Cloud帐户中管理多个GKE项目

时间:2020-04-01 15:12:24

标签: kubectl

考虑到在同一计费帐户下的不同Google Cloud项目中有三个单独的GKE实例的情况,我该如何配置kubectl以便我执行的命令仅适用于特定集群?

1 个答案:

答案 0 :(得分:2)

kubectl对Kubernetes API服务器的访问由配置上下文管理。

Here是一些有关此操作的文档。简而言之,您将建立多个Kubernetes集群,然后指定如下配置:

apiVersion: v1
kind: Config
preferences: {}

clusters:
- cluster:
  name: development
- cluster:
  name: scratch

users:
- name: developer
- name: experimenter

contexts:
- context:
  name: dev-frontend
- context:
  name: dev-storage
- context:
  name: exp-scratch

要自动生成一个,可以运行以下命令:

# Add cluster details to the file
kubectl config --kubeconfig=config-demo set-cluster development --server=https://1.2.3.4 --certificate-authority=fake-ca-file

kubectl config --kubeconfig=config-demo set-cluster scratch --server=https://5.6.7.8 --insecure-skip-tls-verify


# Add user details to the configuration file
kubectl config --kubeconfig=config-demo set-credentials developer --client-certificate=fake-cert-file --client-key=fake-key-seefile

kubectl config --kubeconfig=config-demo set-credentials experimenter --username=exp --password=some-password


# Add context details to the configuration file
kubectl config --kubeconfig=config-demo set-context dev-frontend --cluster=development --namespace=frontend --user=developer

kubectl config --kubeconfig=config-demo set-context dev-storage --cluster=development --namespace=storage --user=developer

kubectl config --kubeconfig=config-demo set-context exp-scratch --cluster=scratch --namespace=default --user=experimenter

之后,您可以保护上下文。然后,继续,当您运行kubectl命令时,该操作将应用于特殊上下文中列出的群集和名称空间。例如:

kubectl config --kubeconfig=config-demo use-context dev-frontend

然后将上下文更改为您指定的另一个上下文:

kubectl config --kubeconfig=config-demo use-context exp-scratch