Развертывание кластера Kubernetes на AWS с помощью Amazon EKS
Создание кластера Kubernetes с помощью Elastic Kubernetes Service
В этой статье мы узнаем, как развернуть кластер Kubernetes на AWS с помощью Amazon EKS и как установить и настроить AWS CLI и Kubectl. Strong> для взаимодействия с кластером EKS из командной строки в Linux.
Прежде чем развертывать кластер Kubernetes в облаке AWS с помощью Amazon Elastic Kubernetes Service, убедитесь, что у вас есть учетная запись AWS. Если у вас нет учетной записи AWS, прочтите нашу статью Введение в Amazon Web Services (AWS), чтобы узнать, как ее создать.
1. Настройка кластера EKS (главный узел)
Чтобы создать кластер EKS в AWS, вам необходимо иметь созданную роль IAM.
1.1. Создать роль IAM
Кластеры Kubernetes, управляемые Amazon EKS, от вашего имени обращаются к другим сервисам AWS для управления ресурсами, которые вы используете в этом сервисе.
Прежде чем создавать кластеры Amazon EKS, необходимо сначала создать роль IAM со следующей политикой IAM:
AmazonEKSClusterPolicy
Войдите в свою консоль AWS и найдите «IAM». Выберите службу IAM, чтобы войти в консоль IAM.
Поиск службы IAM
Выберите «Роли» в левой части экрана и нажмите «Создать роль».
Создать роль
Выберите сервисы AWS и выберите «EKS – Кластер» в параметрах вариантов использования. После выбора нажмите «Далее», чтобы продолжить.
Выберите доверенное лицо для роли
Убедитесь, что AmazonEKSClusterPolicy добавлен. По умолчанию он будет добавлен, поскольку в сценариях использования мы выбрали EKS-Cluster. Нажмите Далее, чтобы продолжить.
Добавить разрешение для роли
На следующем шаге задайте имя роли. Здесь мы называем роль «ostechnix_eks». Просмотрите все параметры и в конце нажмите «Создать», чтобы создать роль.
Установить имя роли
Здесь мы не добавляем никаких тегов для этой роли. Если мы имеем дело с несколькими ресурсами, будет полезно иметь теги для управления, идентификации и фильтрации ресурсов.
Создать роль IAM
Только что была создана новая роль с именем «ostechnix_eks».
Роль IAM создана для кластера EKS.
1.2. Создать кластер EKS
Перейдите в консоль AWS и выполните поиск по запросу «EKS». Выберите «Служба Elastic Kubernetes», чтобы войти в консоль EKS.
Поиск сервиса EKS
В раскрывающемся списке «Добавить кластер» выберите вариант «Создать кластер».
Добавить новый кластер EKS
Вы получите страницу «Настройка кластера», где вы сможете назвать кластер, выбрать версию Kubernetes и выбрать роль службы кластера, которую мы создали на предыдущем шаге.
Здесь мы назвали кластер «ostechnix» и выбрали Kubernetes версии 1.21.
Настроить кластер
Если вы не нашли роль, обновите роли. Выберите роль и нажмите «Далее», чтобы продолжить.
Обновить роли
В этом разделе «Укажите сеть» вам необходимо настроить сеть. Здесь мы продолжаем использовать параметры по умолчанию.
Выберите существующий VPC. VPC — это виртуальное частное облако, где вы можете создавать ресурсы AWS в определенной вами виртуальной сети. Продолжайте использовать подсети по умолчанию, доступные в VPC по умолчанию.
Выберите IPv4 в качестве семейства IP-адресов кластера. Это значение по умолчанию.
Укажите детали сети
Выберите «Общедоступный» для доступа к конечной точке кластера, который обеспечивает только общий доступ к вашему кластеру. Если вы выберете «Частный», это обеспечит только частный доступ к вашему кластеру. Здесь мы продолжаем использовать Public, который используется по умолчанию.
Вы можете продолжить с «Сетевыми надстройками» по умолчанию и нажать «Далее».
Введите сведения о доступе к конечной точке и сетевых надстройках.
Вы получите страницу «Настроить ведение журнала», где вы сможете выбрать, какие типы журналов вы хотите включить. По умолчанию все типы отключены. Нажмите «Далее», чтобы продолжить.
Настройте детали журналирования
Вы получите страницу «Просмотр и создание». Просмотрите все детали, которые мы настроили, и нажмите «Создать» внизу.
Создать кластер EKS
Создание кластера будет продолжаться. Создание займет пару минут.
Выполняется создание кластера EKS
Создан новый кластер EKS под названием «ostechnix». Вы можете проверить это в консоли AWS? Amazon EKS? Clusters.
Состояние кластера EKS
Далее нам нужно установить и настроить AWS CLI и Kubectl для взаимодействия с кластером EKS из командной строки.
Чтобы настроить учетные данные AWS CLI, вам необходимо создать учетные данные безопасности в AWS IAM.
2. Создайте учетные данные безопасности
Войдите в консоль AWS и выполните поиск с помощью IAM. Выберите IAM, чтобы войти в консоль IAM.
Поиск службы IAM
Выберите опцию «Мои учетные данные безопасности», доступную справа, чтобы создавать учетные данные безопасности и управлять ими.
Выберите опцию «Мои учетные данные безопасности».
Нажмите раскрывающийся список «Ключи доступа» и выберите «Создать новый ключ доступа».
Создать новый ключ доступа
Как только вы нажмете кнопку «Создать новый ключ доступа», ключ будет создан. Загрузите ключ для настройки AWS CLI на компьютере с Linux. Вы можете просмотреть ключ, установив флажок «Показать ключ доступа».
Создать ключ доступа
Ключевым моментом в этой демонстрации является то,
- Идентификатор ключа доступа: AKIAV7XU2AIJBX4EYKUO
- Секретный ключ доступа: jicg/UZyZfb92zuYNnEAE0MVSJisHb0Mlgac2Doe
3. Установите интерфейс командной строки AWS.
AWS CLI — это интерфейс командной строки, который объединяет все сервисы AWS в одном терминале, позволяя управлять многочисленными сервисами AWS с помощью одного инструмента.
Используйте приведенную ниже команду curl
, чтобы загрузить установочный файл. Здесь мы используем CentOS Stream для установки и настройки AWS CLI.
[root@ostechnix ~]# curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
Разархивируйте файл установщика, используя команду ниже.
[root@ostechnix ~]# unzip awscliv2.zip
Установите AWS CLI, используя команду ниже.
[root@ostechnix ~]# ./aws/install
You can now run: /usr/local/bin/aws --version
Проверьте версию, используя вышеупомянутую команду.
[root@ostechnix ~]# /usr/local/bin/aws --version
aws-cli/2.4.17 Python/3.8.8 Linux/4.18.0-358.el8.x86_64 exe/x86_64.centos.8 prompt/off
Проверьте версию AWS
4. Настройте интерфейс командной строки AWS
Используйте приведенную ниже команду для настройки интерфейса командной строки AWS. Он запросит идентификатор ключа доступа и секретный ключ доступа, которые мы сгенерировали в разделе 2.
[root@ostechnix ~]# /usr/local/bin/aws configure
AWS Access Key ID [None]: AKIAV7XU2AIJBX4EYKUO
AWS Secret Access Key [None]: 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
Default region name [None]:
Default output format [None]:
[root@ostechnix ~]#
Настройка интерфейса командной строки AWS
5. Установите Кубектл
Kubernetes взаимодействует с сервером API кластера через утилиту командной строки kubectl.
Используйте приведенную ниже команду Curl, чтобы загрузить продаваемый Amazon EKS двоичный файл kubectl с Amazon S3.
[root@ostechnix ~]# curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.21.2/2021-07-05/bin/linux/amd64/kubectl
Добавьте разрешение на выполнение в двоичный файл, используя команду ниже.
[root@ostechnix ~]# chmod +x ./kubectl
Скопируйте этот двоичный файл в папку по вашему пути и экспортируйте ` PATH
.
[root@ostechnix ~]# mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
Экспортируйте PATH в ~/.bashrc
:
[root@ostechnix ~]# echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
Kubectl установлен, вы можете проверить версию, используя команду ниже.
[root@ostechnix ~]# kubectl version --short --client
Client Version: v1.21.2-13+d2965f0db10712
Проверьте версию Kubectl
6. Настройте Кубектл
Сейчас kubectl не знает, где находится главный узел EKS в AWS. Нам нужно сообщить kubectl, где находится главный сервер, указав имя региона и имя кластераr.
Используйте приведенную ниже команду, чтобы проверить состояние кластера EKS.
[root@ostechnix ~]# /usr/local/bin/aws eks --region ap-south-1 describe-cluster --name ostechnix --query cluster.status
"ACTIVE"
Проверьте статус кластера EKS
Обновите файл kubeconfig, чтобы использовать kubectl для взаимодействия с кластером EKS. Он получит все конфигурации с главного узла в файл kubeconfig.
[root@ostechnix ~]# /usr/local/bin/aws eks --region ap-south-1 update-kubeconfig --name ostechnix
Added new context arn:aws:eks:ap-south-1:411756528146:cluster/ostechnix to /root/.kube/config
Проверьте kubectl, проверив службу с помощью приведенной ниже команды. Вы можете убедиться, что Kubectl может подключиться к кластеру EKS.
[root@ostechnix ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 105m
Получите подробную информацию о сервисе с помощью команды kubectl
Заключение
В этой статье мы узнали, как предоставить кластер Amazon EKS и как настроить AWS CLI и Kubectl для кластера EKS на платформе Linux.
Я успешно развернул кластер Kubernetes в облаке AWS. Что теперь? Вы можете задаться вопросом. Ознакомьтесь с нашим следующим руководством, чтобы узнать, как добавлять группы узлов и настраивать рабочие узлы в кластере AWS EKS.
- Как добавить рабочие узлы в кластер Amazon EKS
Ресурс:
- https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html