EKS 上有两个集群,如何在它们之间切换

问题描述 投票:0回答:5

我不太确定发生了什么,这就是我问这个问题的原因。当我运行此命令时:

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
amazon-web-services kubernetes kubectl amazon-eks
5个回答
17
投票

澄清

set-context
use-context

之间的区别

上下文是一组访问参数。每个上下文都包含一个 Kubernetes 集群、一个用户和一个命名空间。因此,当您执行 set-context 时,您只需将上下文详细信息添加到配置文件

~/.kube/config
中,但它不会将您切换到该上下文,而 use-context 实际上会切换到该上下文。

因此,正如瓦西里提到的,为了在集群之间切换运行

kubectl config use-context <CONTEXT-NAME>

此外,如果您运行

kubectl config get-contexts
,您将看到上下文列表,其中包含当前上下文的指示。


3
投票

使用

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

2
投票

考虑使用 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 工具。


1
投票

这是在不同 EKS 集群之间切换的最佳命令。

我每天都用它。

aws eks update-kubeconfig --name example

文档:

https://docs.aws.amazon.com/cli/latest/reference/eks/update-kubeconfig.html


0
投票

您可以尝试 Lens - https://k8slens.dev/ 这将有助于通过其 GUI 更轻松地管理多个 EKS 集群

© www.soinside.com 2019 - 2024. All rights reserved.