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

时间:2019-05-22 03:31:06

标签: amazon-web-services kubernetes kubectl eks

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

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,则会得到预期的输出。 但是,如何切换到其他群集/上下文?集群和上下文之间有什么区别?我不知道这些命令有何不同:

运行它们时,仍然会从错误的群集中获得吊舱:

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

3 个答案:

答案 0 :(得分:1)

使用

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

答案 1 :(得分:1)

要弄清set-contextuse-context之间的区别

上下文是一组访问参数。每个上下文包含一个Kubernetes集群,一个用户和一个名称空间。因此,当您进行 set-context 设置时,您只是将上下文详细信息添加到配置文件~/.kube/config中,但是在 use-context 中,它并不会切换到该上下文。 strong>实际上确实如此。

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

kubectl config use-context <CONTEXT-NAME>

此外,如果您运行kubectl config get-contexts,则将看到上下文列表以及当前上下文的指示。

答案 2 :(得分:0)

考虑使用 kubectx 来管理您的上下文。


使用

查看所有上下文(当前上下文为粗体):

$ kubectx my-rnd
Switched to context "my-rnd".

切换到其他上下文:

providers: [
    {
        provide: MAT_DIALOG_SCROLL_STRATEGY,
        useFactory: (scrollStrategyOptions: ScrollStrategyOptions) => scrollStrategyOptions.noop,
        deps: [ScrollStrategyOptions]
    }
]

奖励:
在同一链接中 - 还检查 kubens 工具。