我不太确定发生了什么,这就是我问这个问题的原因。当我运行此命令时:
kubectl config get-clusters
我得到:
arn:aws:eks:us-west-2:91xxxxx371:cluster/eks-cluster-1
arn:aws:eks:us-west-2:91xxxxx371:cluster/eks1
然后我跑:
kubectl config current-context
我得到:
arn:aws:eks:us-west-2:91xxxxx371:cluster/eks-cluster-1
如果我运行
kubectl get pods
,我会得到预期的输出。
但如何切换到其他集群/上下文?集群和上下文有什么区别?我无法弄清楚这些命令有何不同:
当我运行它们时,我仍然从错误的集群中获取 Pod:
root@4c2ab870baaf:/# kubectl config set-context arn:aws:eks:us-west-2:913617820371:cluster/eks1
Context "arn:aws:eks:us-west-2:913617820371:cluster/eks1" modified.
root@4c2ab870baaf:/#
root@4c2ab870baaf:/# kubectl get pods
NAME READY STATUS RESTARTS AGE
apache-spike-579598949b-5bjjs 1/1 Running 0 14d
apache-spike-579598949b-957gv 1/1 Running 0 14d
apache-spike-579598949b-k49hf 1/1 Running 0 14d
root@4c2ab870baaf:/# kubectl config set-cluster arn:aws:eks:us-west-2:91xxxxxx371:cluster/eks1
Cluster "arn:aws:eks:us-west-2:91xxxxx371:cluster/eks1" set.
root@4c2ab870baaf:/# kubectl get pods
NAME READY STATUS RESTARTS AGE
apache-spike-579598949b-5bjjs 1/1 Running 0 14d
apache-spike-579598949b-957gv 1/1 Running 0 14d
apache-spike-579598949b-k49hf 1/1 Running 0 14d
所以我真的不知道如何在集群或上下文之间正确切换,以及在这样做时切换身份验证例程。
例如:
contexts:
- context:
cluster: arn:aws:eks:us-west-2:91xxxxx371:cluster/ignitecluster
user: arn:aws:eks:us-west-2:91xxxx371:cluster/ignitecluster
name: arn:aws:eks:us-west-2:91xxxxx371:cluster/ignitecluster
- context:
cluster: arn:aws:eks:us-west-2:91xxxx371:cluster/teros-eks-cluster
user: arn:aws:eks:us-west-2:91xxxxx371:cluster/teros-eks-cluster
name: arn:aws:eks:us-west-2:91xxxxx371:cluster/teros-eks-cluster
澄清
set-context
和use-context
之间的区别
上下文是一组访问参数。每个上下文都包含一个 Kubernetes 集群、一个用户和一个命名空间。因此,当您执行 set-context 时,您只需将上下文详细信息添加到配置文件
~/.kube/config
中,但它不会将您切换到该上下文,而 use-context 实际上会切换到该上下文。
因此,正如瓦西里提到的,为了在集群之间切换运行
kubectl config use-context <CONTEXT-NAME>
此外,如果您运行
kubectl config get-contexts
,您将看到上下文列表,其中包含当前上下文的指示。
使用
kubectl config use-context arn:aws:eks:us-west-2:91xxxxx371:cluster/eks-cluster-1
和
kubectl config use-context arn:aws:eks:us-west-2:91xxxxx371:cluster/eks
考虑使用 kubectx 来管理您的上下文。
用法
查看所有上下文(当前上下文以粗体显示):
$kubectx
arn:aws:eks:us-east-1:12234567:cluster/eks_app
->gke_my_second_cluster
my-rnd
my-prod
切换到其他上下文:
$ kubectx my-rnd
Switched to context "my-rnd".
奖金:
在同一链接中 - 另请检查 kubens 工具。
这是在不同 EKS 集群之间切换的最佳命令。
我每天都用它。
aws eks update-kubeconfig --name example
文档:
https://docs.aws.amazon.com/cli/latest/reference/eks/update-kubeconfig.html
您可以尝试 Lens - https://k8slens.dev/ 这将有助于通过其 GUI 更轻松地管理多个 EKS 集群