Настройка подключения к кластеру Amazon Elastic Kubernetes Service

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

Для начала нам надо установить и настроить AWS CLI. Подробная инструкция тут лежит Install or update to the latest version of the AWS CLI, но мы сделаем из нее выжимку для ленивых кто не хочет читать.

# curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
# unzip awscliv2.zip
# ./aws/install

Проверяем, что мы там вообще установили.

# /usr/local/bin/aws --version
aws-cli/2.17.54 Python/3.12.6 Linux/4.18.0-553.6.1.el8.x86_64 exe/x86_64.centos.8

Создаем пользователя через WEB-интерфайс и добавляем ему права по вкусу и привелегиям. На максималках выглядит примерно так.

Там-же генерируем ему ключ доступа. И обязательно его запишите или придется новый городить.

Тип аккаунта Local Code и он нужен для локальной разработки, дальше можно по вкусу и потом поменять. Дальше там все просто и нам надо просто забрать наши явки и пароли.

Ключики мы получили и теперь погнали. Авторизуемся, проверяем.

Авторизуемся.

# /usr/local/bin/aws configure
AWS Access Key ID [None]: AKIA........
AWS Secret Access Key [None]: bTx........
Default region name [None]: us-east-2
Default output format [None]: json

Проверяем.

# /usr/local/bin/aws iam get-user
{
    "User": {
        "Path": "/",
        "UserName": "col-dev",
        "UserId": "AID......",
        "Arn": "arn:aws:iam::360164620840:user/col-dev",
        "CreateDate": "2024-09-19T05:31:05+00:00"
    }
}

Отлично, тут работает давайте еще запросим список наших EC2 машинок, что-бы наверняка.

# /usr/local/bin/aws ec2 describe-instances

Там будет огромная простыня в формате json и значит, мы близки к успеху. И можем начинать подключаться к k8s кластеру. Установку Docker+DockerCompose+KubeCtl+Helm и прочей такой развлекухи, я уже описывал в планах даже видос сделать если YouTube не заблокируют окончательньно, а сейчас исходим из того, что это добро у нас уже есть.

Запрашиваем список доступных кластеров.

# aws eks list-clusters

Подключаемся к кластеру.

aws eks update-kubeconfig --region region-code --name my-cluster

Например, в моем случае так.

# aws eks update-kubeconfig --region us-east-2 --name columbia-prod

Далее, при попытке поработать с kubectl вы получите ошибку.

E0925 06:35:26.291051   87663 memcache.go:265] "Unhandled Error" err="couldn't get current server API group list: the server has asked for the client to provide credentials"
error: You must be logged in to the server (the server has asked for the client to provide credentials)

Следовательно идем в настройки ролей кластера и добавляем нашему пользователю необходимые для работы группы доступа. Опять же на максималках получается нечто вида.

Как говорится, тут по вкусу ограничений накидать и можно проверить, что это вообще работает теперь.

# kubectl get namespaces

Собственно все. Мы победили бездушную машину Амазона. Надо будет еще со Сберовским облаком попробовать такое-же провернуть.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *