1. eksctl 설치
$ curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp sudo mv -v /tmp/eksctl /usr/local/bin
$ eksctl version
0.38.0
ㅇ Enable eksctl bash-completion
$ eksctl completion bash >> ~/.bash_completion . /etc/profile.d/bash_completion.sh . ~/.bash_completion
2. EKS Cluster 생성
ㅇ eks yaml 생성
cat << EOF > eks-newelite.yaml
---
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: eks-newelite-eksctl
region: ${AWS_REGION}
version: "1.17"
availabilityZones: ["${AZS[0]}", "${AZS[1]}", "${AZS[2]}"]
managedNodeGroups:
- name: nodegroup
desiredCapacity: 3
instanceType: t3.small
ssh:
allow: true
publicKeyName: eks-newelite
# To enable all of the control plane logs, uncomment below:
# cloudWatch:
# clusterLogging:
# enableTypes: ["*"]
secretsEncryption:
keyARN: ${MASTER_ARN}
EOF
$ eksctl create cluster -f eks-newelite.yaml
ㅇ 생성된 클러스터 환경 점검
$ kubectl get nodes
ㅇ Export the Worker Role Name
$ STACK_NAME=$(eksctl get nodegroup --cluster eks-newelite-eksctl -o json | jq -r '.[].StackName') ROLE_NAME=$(aws cloudformation describe-stack-resources --stack-name $STACK_NAME | jq -r '.StackResources[] | select(.ResourceType=="AWS::IAM::Role") | .PhysicalResourceId') echo "export ROLE_NAME=${ROLE_NAME}" | tee -a ~/.bash_profile
더보기
ㅁ 콘솔 자격 증명
EKS 콘솔에서 EKS Cluster에 대한 전체 엑세스 권한을 원하는 경우 사용
EKS 콘솔을 사용하면 클러스터의 구성 측면 뿐만 아니라 배포, 포드, 노드와 같은 Kuberentes 클러스터 객체도 볼 수 있다. 이러한 유형의 액세스를 위해서는 콘솔 IAM 사용자 또는 역할이 클러스터 내에서 권한을 부여 받아야 한다.
ㅇ EKS 콘솔 자격 증명을 새로 만든 클러스터로 가져옴.
IAM 사용자와 역할은 ConfigMap을 통해 EKS Kubernets 클러스터에 바인딩된다. aws-auth eksctl 하나의 명령으로 적용 가능
아래 명령어를 수행하여 IAM 열할과 ARN을 확인 한다.
$ c9builder=$(aws cloud9 describe-environment-memberships --environment-id=$C9_PID | jq -r '.memberships[].userArn')
if echo ${c9builder} | grep -q user; then
rolearn=${c9builder}
echo Role ARN: ${rolearn}
elif echo ${c9builder} | grep -q assumed-role; then
assumedrolename=$(echo ${c9builder} | awk -F/ '{print $(NF-1)}')
rolearn=$(aws iam get-role --role-name ${assumedrolename} --query Role.Arn --output text)
echo Role ARN: ${rolearn}
fi
ARN을 사용하면 명령을 실행하여 클러스터 내에서 자격 증명 매핑을 생성할 수 있다.
eksctl create iamidentitymapping --cluster eks-newelite-eksctl --arn ${rolearn} --group system:masters --username admin
권한은 제한되고 세분화 될 수 있지만 워크샵 클러스터이므로 콘솔 자격 증명을 관리자로 추가한다.
콘솔 내의 AWS 인증 맵에서 항목 확인 가능
$ kubectl describe configmap -n kube-system aws-auth
'AWS EKS 실습 > EKS 환경 구성' 카테고리의 다른 글
EKS CNI Custom Network을 이용한 Pod 대역 분리 (0) | 2022.05.17 |
---|---|
2. 사전 준비 - 5 (Service Repo, SSH, KMS) (0) | 2021.02.17 |
2. 사전 준비 - 4 (IAM Role 할당 및 Cloud9 EC2 적용) (0) | 2021.02.17 |
2. 사전 준비 -3 (Install Kubernetes Tools) (0) | 2021.02.17 |
2. 사전 준비 - 2 (EKS Cluster 구성을 위한 Cloud 9 생성) (0) | 2021.02.17 |