EKS 환경 작업을 하기 위한, Control Plane에 있는 API Server에 요청을 보내기 위한 작업공간이 필요한데 bastion host
라는 SSH Jump용 EC2를 개설한 뒤에 자격증명을 거치고 하는 세팅을 하기 복잡하기 때문에 간편하게 Cloud9
을 사용하기로 했다.
user-cloud9
작업 공간에 들어가 환경변수를 설정해준다.
sudo vi /etc/profile
ACCOUNT=userName
AWSNUM=111122223333
AWSREGION=ap-northeast-2
키는 워커 노드에 ssh 점프시 사용된다.
ssh-keygen
##Enter 3번 클릭하면 기본 설정으로 키가 생긴다.
aws ec2 import-key-pair --key-name "ekskey-$ACCOUNT" --public-key-material file://~/.ssh/id_rsa.pub
# aws ec2 CLI version 2 사용시
aws ec2 import-key-pair --key-name "ekskey-$ACCOUNT" --public-key-material fileb://~/.ssh/id_rsa.pub
CLI 버전이 다를 경우에 base64 에러가 발생했다.
해결 구글링 링크
Invalid base64 error when calling aws ec2 import-key-pair using AWS CLI version 2 #48
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.24.9/2023-01-11/bin/linux/amd64/kubectl
chmod +x ./kubectl
mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
kubectl
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/local/bin
eksctl
AWS 서비스의 EC2 사용사례로 역할을 만들어준다.
정책에 AdministratorAccess
를 설정해 루트 정책을 만들어 역할에 부여한다.
eks-admin-userName
형식으로 이름을 설정하고 생성한다.
Cloud9이 실행중인 EC2를 선택해 작업->보안-> IAM 역할 수정에 들어가 우리가 만든 역할을 지정해준다.
클라우드9에 접속해 AWS 기존 자격 증명을 수정한다.
rm -vf ${HOME}/.aws/credentials
aws configure set default.region $AWSREGION
aws configure get default.region
aws iam get-instance-profile --instance-profile-name eks-admin-$ACCOUNT --query "InstanceProfile.Roles[0].RoleName" --output text
aws sts get-caller-identity