Подключение к существующему кластеру EKS с помощью kubectl или eksctl - PullRequest
0 голосов
/ 03 мая 2020

Я создал один кластер kubernetes на EKS. Я использовал eksctl create cluster для создания кластера. Я могу ccss все, что хорошо.

Однако мой коллега создал другой кластер, и мне интересно, как я буду генерировать / получать cobeconfigs, чтобы я мог указать на кластер что мой коллега создал.

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Вы можете получить aws ключ доступа IAM и идентификатор, который имеет разрешение на доступ к кластеру как для кластера, так и установить два профиля aws и использовать следующую команду для доступа к кластеру:

aws eks update-kubeconfig --name имя-кластера --profile aws -profilename

, указанная выше команда добавит данные доступа в файл kubeconfig, а также установит текущий контекст. После этого вы можете переключать контекст с помощью команд kubectl:

config kubectl use-context arn-nameofeks-cluster

обязательное условие:

  • aws - cli установлен
  • установлен kubectl
0 голосов
/ 05 мая 2020

Доступ к частному API-серверу

Если вы отключили доступ publi c для конечной точки сервера Kubernetes API вашего кластера, вы можете получить доступ к серверу API только из своего VP C или подключенная сеть . Вот несколько возможных способов доступа к конечной точке сервера API Kubernetes:

  • Подключенная сеть - Подключите свою сеть к VP C с помощью AWS транзитный шлюз или другой параметр связность , а затем используйте компьютер в подключенной сети. Вы должны убедиться, что ваша группа безопасности плоскости управления Amazon EKS содержит правила, разрешающие входящий трафик c на порт 443. Подключенная сеть.

  • хост-узел Amazon EC2 - Вы можете запустить экземпляр Amazon EC2 в publi c su bnet в VP C вашего кластера, а затем войти через S SH в этот экземпляр для запуска kubectl команд. Для получения дополнительной информации см. Linux бастионные хосты на AWS. Вы должны убедиться, что ваша группа безопасности плоскости управления Amazon EKS содержит правила, разрешающие входной трафик c на порт 443 от вашего хоста бастиона. Для получения дополнительной информации см. Замечания по группе безопасности Amazon EKS .

    При настройке kubectl для своего хоста-бастиона обязательно используйте учетные данные AWS, которые уже сопоставлены с RBA вашего кластера. C или добавьте пользователя или роль IAM, которые ваш бастион будет использовать в конфигурацию RBA C, перед удалением доступа к конечной точке publi c. Для получения дополнительной информации см. Управление пользователями или ролями IAM для вашего кластера и Несанкционированный доступ или отказ в доступе (kubectl) .

  • AWS Cloud9 IDE - AWS Cloud9 - это облачная интегрированная среда разработки (IDE), которая позволяет писать, запускать и отлаживать код с помощью всего лишь браузера. Вы можете создать AWS Cloud9 IDE в VP C вашего кластера и использовать IDE для связи с вашим кластером. Для получения дополнительной информации см. Создание среды в AWS Cloud9 . Вы должны убедиться, что ваша группа безопасности плоскости управления Amazon EKS содержит правила, разрешающие входящий трафик c на порт 443 из вашей группы безопасности IDE. Для получения дополнительной информации см. Рекомендации группы безопасности Amazon EKS .

    При настройке kubectl для вашей AWS Cloud9 IDE обязательно используйте учетные данные AWS, которые уже сопоставлены с конфигурацию RBA C вашего кластера или добавьте пользователя или роль IAM, которые ваша IDE будет использовать в конфигурации RBA C, перед удалением доступа конечной точки publi c. Для получения дополнительной информации см. Управление пользователями или ролями IAM для вашего кластера и Несанкционированный доступ или отказ в доступе (kubectl) . Посмотрите здесь: eks-endpoints-access .

Изоляция через несколько кластеров

Возможной альтернативой является использование нескольких арендаторов Amazon EKS. кластеры. С помощью этой стратегии каждый арендатор будет иметь возможность использовать свой собственный кластер Kubernetes, в рамках общей учетной записи AWS или использовать выделенные учетные записи в организации для крупных предприятий. После развертывания кластеров вам может потребоваться обзор всех развернутых кластеров для мониторинга каждого арендатора, убедитесь, что мы используем последнюю версию плоскости управления EKS и работаем в масштабе. Rancher - это популярный инструмент с открытым исходным кодом, используемый для управления несколькими кластерами Kubernetes. Обязательно ознакомьтесь с этой статьей в блоге Open Source , чтобы узнать, как ее развертывать и использовать.

Кластеры в том же VP C

Если кластер вашего коллеги находится в том же VP C Я советую вам использовать AWS App Me sh , App Me sh - это сервис me sh, который позволяет вам контролировать и отслеживать сервисы, охватывающие два кластера, развернутых в одном VP C.

Архитектура:

Предварительные условия

Для успешного развертывания базы:

  • Убедитесь, что установлена ​​новейшая AWS CLI , то есть версия 1.16.268 или выше.
  • Убедитесь, что установлена ​​kubectl , по крайней мере, версия 1.11 или выше.
  • Убедитесь, что установлено jq .
  • Убедитесь, что установлено aws-iam-authenticator , требуется для eksctl
  • Установите eksctl , например, на macOS с brew tap weaveworks/tap и brew install weaveworks/tap/eksctl, и убедитесь, что он включен как минимум на версии 0.1.26.

Обратите внимание, что это пошаговое руководство предполагает работу в регионе us-east-1.

Предполагая, что оба кластера работают и

Обновите переменную среды KUBECONFIG на каждом кластеризация в соответствии с выводом eksctl соответственно:
Запустите следующее на соответствующих вкладках.

export KUBECONFIG=~/.kube/eksctl/clusters/first-cluster 

export KUBECONFIG=~/.kube/eksctl/clusters/second-cluster

Теперь вы настроили два кластера и указали kubectl на соответствующие кластеры.

Теперь пришло время развернуть пользовательские компоненты App Me sh

Чтобы автоматически внедрять компоненты и прокси App Me sh при создании модуля, необходимо создать несколько пользовательских ресурсов в кластерах , Для этого используйте helm . Установите tiller на обоих кластерах, а затем используйте helm для запуска следующих команд на обоих кластерах.

Скачать App Me sh repo

>> git clone https://github.com/aws/aws-app-mesh-examples (https://github.com/aws/aws-app-mesh-examples).git
>> cd aws-app-mesh-examples/walkthroughs/howto-k8s-cross-cluster

Установка руля

>>brew install kubernetes-helm

Установка румпеля

Для использования руля требуется компонент серверной части, называемый румпелем, установленный в кластере , Следуйте инструкциям в документации для установки румпеля на оба кластера.

Проверьте установку румпеля

>>kubectl get po -n kube-system | grep -i tiller
tiller-deploy-6d65d78679-whwzn 1/1 Running 0 5h35m

Установите App Me sh Компоненты

Выполните следующий набор команд для установки компонентов контроллера и инжектора App Me sh.

helm repo add eks https://aws.github.io/eks-charts
kubectl create ns appmesh-system
kubectl apply -f https://raw.githubusercontent.com/aws/eks-charts/master/stable/appmesh-controller/crds/crds.yaml
helm upgrade -i appmesh-controller eks/appmesh-controller --namespace appmesh-system
helm upgrade -i appmesh-inject eks/appmesh-inject --namespace appmesh-system --set mesh.create=true --set mesh.name=global

Теперь вы готовы к развертыванию примера front и приложения colorapp для соответствующих кластеров вместе с App Me sh, который будет охватывать оба кластера.

Развертывание служб и me sh конструкций

  1. Вы должны быть в в папке пошагового руководства / howto-k8s-cross-cluster все команды будут запускаться с этого места.

  2. Идентификатор вашей учетной записи:

export AWS_ACCOUNT_ID=<your_account_id>
Регион, например, us-east-1
export AWS_DEFAULT_REGION=us-east-1
Для переменной среды ENVOY_IMAGE установлено значение App Me sh Envoy, см. Envoy .
export ENVOY_IMAGE=...
VPC_ID Переменная среды установлена ​​в VP C, где запускаются модули Kubernetes. VP C будет использоваться для установки
частного пространства имен DNS в AWS с использованием API create-private-dns-namespace. Чтобы узнать VP C кластера EKS, вы можете
использовать aws eks describe-cluster. Ниже приведена причина, по которой требуется AWS Облачная карта PrivateDnsNamespace.
export VPC_ID=...
Переменные среды CLUSTER для экспорта конфигурации kube
export CLUSTER1=first-cluster
export CLUSTER2=second-cluster

Развертывание

./deploy.sh

Наконец, не забудьте проверить развертывание. Более подробную информацию вы можете найти здесь: app-me sh -eks .

...