Два кластера на 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

4 ответа

Чтобы уточнить разницу set-context а также use-context

Контекст - это группа параметров доступа. Каждый контекст содержит кластер Kubernetes, пользователя и пространство имен. Поэтому, когда вы делаете set-context, вы просто добавляете детали контекста в ваш файл конфигурации ~/.kube/config, но это не переключает вас в этот контекст, в то время как использование-контекст на самом деле делает.

Таким образом, как отметил Василий, для переключения между кластерами запустите

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

Другие вопросы по тегам