https://ap-southeast-1.console.aws.amazon.com/cloud9/home?region=ap-southeast-1
완성 시 아래와 같은 터미널이 생깁니다.
Cloud9에서 SSH 키를 생성하려면 아래 명령을 실행하세요. 필요한 경우 이 키는 작업자 노드 인스턴스에서 ssh 액세스를 허용하는 데 사용됩니다.
ssh-keygen
공개 키를 사용중인 EC2 리전에 업로드하세요:
aws ec2 import-key-pair --key-name "키이름" --public-key-material file://~/.ssh/id_rsa.pub
Amazon EKS 클러스터에는 쿠버네티스 클러스터에 대한 IAM 인증을 허용하기 위해 kubectl 및 kubelet 바이너리와 aws-iam-authenticator 바이너리가 필요합니다.
mkdir -p ~/.kube
sudo curl --silent --location -o /usr/local/bin/kubectl "https://amazon-eks.s3-us-west-2.amazonaws.com/1.11.5/2018-12-06/bin/linux/amd64/kubectl"
sudo chmod +x /usr/local/bin/kubectl
go get -u -v github.com/kubernetes-sigs/aws-iam-authenticator/cmd/aws-iam-authenticator
sudo mv ~/go/bin/aws-iam-authenticator /usr/local/bin/aws-iam-authenticator
kubectl version --short --client
aws-iam-authenticator help
sudo yum -y install jq
AWS Service 및 EC2가 선택되었는지 확인한 다음 Next를 클릭하여 권한을 봅니다.
AdministratorAccess가 선택되어 있는지 확인한 다음 Next를 클릭하여 검토합니다.
rm -vf ${HOME}/.aws/credentials
export AWS_REGION=$(curl -s 169.254.169.254/latest/dynamic/instance-identity/document | jq -r '.region')
echo "export AWS_REGION=${AWS_REGION}" >> ~/.bash_profile
aws configure set default.region ${AWS_REGION}
aws configure get default.region
INSTANCE_PROFILE_NAME=`basename $(aws ec2 describe-instances --filters Name=tag:Name,Values=aws-cloud9-${C9_PROJECT}-${C9_PID} | jq -r '.Reservations[0].Instances[0].IamInstanceProfile.Arn' | awk -F "/" "{print $2}")`
aws iam get-instance-profile --instance-profile-name $INSTANCE_PROFILE_NAME --query "InstanceProfile.Roles[0].RoleName" --output text
위 결과 값이 아래와 같은지 확인
aws sts get-caller-identity
Arn 이 위의 역할 이름과 인스턴스 ID를 포함하는 경우 계속 진행할 수 있습니다.
++++
cloud9 을 사용하지 않는다면
apiVersion: v1
clusters:
- cluster:
server: <endpoint-url>
certificate-authority-data: <base64-encoded-ca-cert>
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: aws
name: aws
current-context: aws
kind: Config
preferences: {}
users:
- name: aws
user:
exec:
apiVersion: client.authentication.k8s.io/v1alpha1
command: aws
args:
- "eks"
- "get-token"
- "--cluster-name"
- "<cluster-name>"
# - "--role-arn"
# - "<role-arn>"
# env:
# - name: AWS_PROFILE
# value: "<aws-profile>"
curl --silent --location "https://github.com/weaveworks/eksctl/releases/download/latest_release/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv -v /tmp/eksctl /usr/local/bin
명령어 동작하는지 확인
ekstcl version
기본 EKS 클러스터를 생성하려면 다음을 실행하세요 (실행시 20분 정도 시간 소요됨)
eksctl create cluster --name=eksworkshop-eksctl --nodes=3 --node-ami=auto --region=${AWS_REGION}