1. Cloud9 IDE 접속
AWS 서비스에서 Cloud9을 검색하고 [Open]을 통해서 접속합니다.
Cloud9 디스크 사이즈를 아래 명령어로 확장합니다.
Copy pip3 install --user --upgrade boto3
export instance_id=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
python -c "import boto3
import os
from botocore.exceptions import ClientError
ec2 = boto3.client('ec2')
volume_info = ec2.describe_volumes(
Filters=[
{
'Name': 'attachment.instance-id',
'Values': [
os.getenv('instance_id')
]
}
]
)
volume_id = volume_info['Volumes'][0]['VolumeId']
try:
resize = ec2.modify_volume(
VolumeId=volume_id,
Size=30
)
print(resize)
except ClientError as e:
if e.response['Error']['Code'] == 'InvalidParameterValue':
print('ERROR MESSAGE: {}'.format(e))"
if [ $? -eq 0 ]; then
sudo reboot
fi
2. Kubenetes 도구 설치
Amazon EKS 클러스터에는 쿠버네티스 클러스터에 대한 IAM 인증을 허용하기 위해 kubectl
및 kubelet
바이너리와 aws-iam-authenticator
바이너리가 필요합니다.
kubectl 설정을 저장하기 위한 기본 ~/.kube 디렉토리 생성하고 kubectl
을 설치합니다.
Copy mkdir -p ~/.kube
sudo curl --location -o /usr/local/bin/kubectl https://s3.us-west-2.amazonaws.com/amazon-eks/1.31.2/2024-11-15/bin/linux/amd64/kubectl
sudo chmod +x /usr/local/bin/kubectl
sudo kubectl version --client
AWS CLI를 업데이트 합니다.
Copy curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install --update
3. AWS IAM Authenticator 설치
AWS IAM Authenticator는 쿠버네티스의 RBAC 권한을 AWS IAM을 통해 제어해 줄 수 있도록 해주는 도구입니다. AWS 상에서 관리하고 있는 권한을 그대로 쿠버네티스 API 서버로 가져와 쿠버네티스의 Role을 엮어 줍니다. 예를 들어 DevOps 팀의 IAM Role은 kubernetes-admin 권한을 부여하고 개발팀의 IAM Role에는 개발용 네임스페이스에만 접근 권한을 부여하는 방식으로 사용할 수 있습니다.
Copy sudo curl --location -o /usr/local/bin/aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.19.6/2021-01-05/bin/linux/amd64/aws-iam-authenticator
sudo chmod +x /usr/local/bin/aws-iam-authenticator
aws-iam-authenticator help
4. 기타 필요한 도구 설치
JQ, envsubst(GNU gettext utilities), bash-completion 설치를 설치합니다.
Copy sudo yum -y install jq gettext bash-completion moreutils
yaml 처리를 위해 yq 설치를 설치합니다.
Copy echo 'yq() {
docker run --rm -i -v "${PWD}":/workdir mikefarah/yq "$@"
}' | tee -a ~/.bashrc && source ~/.bashrc
바이너리가 경로 및 실행 파일에 있는지 확인합니다.
Copy for command in kubectl jq envsubst aws
do
which $command &>/dev/null && echo "$command in path" || echo "$command NOT FOUND"
done
kubectl bash_completion 활성화 합니다.
Copy kubectl completion bash >> ~/.bash_completion
. /etc/profile.d/bash_completion.sh
. ~/.bash_completion
AWS Load Balancer Controller 버전 설정합니다.
Copy echo 'export LBC_VERSION="v2.7.2"' >> ~/.bash_profile
. ~/.bash_profile