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