Облака, белогривые лошадки,
Облака, что вы мчитесь без оглядки
Не смотрите вы пожалуйста свысока,
А по небу прокатите нас облака.
Не смотрите вы пожалуйста свысока,
А по небу прокатите нас облака.
Для начала нам надо установить и настроить 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
Собственно все. Мы победили бездушную машину Амазона. Надо будет еще со Сберовским облаком попробовать такое-же провернуть.