EKS/EKS Cluster

EKS Cluster 구축 - 3. Worker Node Group, Security Group 설정

Camouflage129 2020. 2. 1. 22:40

EKS CLUSTER가 모두 완성되었기 때문에 Node Group을 추가해보도록 하겠습니다.

서브넷을 Private만 선택하여서 실제 서비스는 Private Network에만 구성되도록 하겠습니다.

 

 

인트로에서 말씀드렸듯 EC2 Type에 따라서 Pod수의 제한이 있습니다

원활한 구성을 위해서 t3.large를 골라주도록 하겠습니다.

Type별 Pod제한을 통해서 체크해주세요

 

 


 

이제 구성이 끝나면 Security Group 설정을 아래와 같이 해주시면 되겠습니다.

 

Cluster를 Security Group 설정 없이 그냥 구축하게 되면

eks-cluster-~~~ 라 나오는 것이 Cluster SG이고,

remoteAccess-~~~가 WorkerNode SG입니다.

 

다큐링크를 참고하셔서 구성하시면 됩니다.

저는 아래와 같이 구성하였고 하나의 퍼블릭 Bastion 서버를 두고 Priavte Jenkins서버에서만 접근할 수 있게하였습니다.

 

Cluster Security Group

Worker Node Security Group


이제 쿠버를 컨트롤 할 bastion 세팅을 해주면 되는데, 세팅은 다음 세개를 해주셔야합니다.

1. kubectl install

2. IAM-Authenticator install

3. kubeconfig

 

이 부분은 위의 다큐를 보고 수행하셔도 되고, 다음 쉘 스크립트들을 Bastion -> Jenkins서버에서 수행하셔도 됩니다.

 

Jenkins Pipeline에서 배포를 해야하기 때문에 kubectl 명령어를 수행할 수 있도록 구성하시는게 편해서

저는 Jenkins 서버에 세팅을 하도록 하겠습니다.

Bastion서버 Jenkins 서버세팅은 AWS 기본 구성 게시글과 CICD 게시글을 참고해주시면 됩니다.

 

자 이제 Jenkins 서버에서 아래 쉘스크립트를 하나씩 수행해주세요

 

1. kubectl 설치

curl -o kubectl https://amazon-eks.s3-us-west-2.amazonaws.com/1.14.6/2019-08-22/bin/linux/amd64/kubectl
chmod +x ./kubectl
mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$HOME/bin:$PATH
echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc
kubectl version --short --client

 

아래와 같이 수행되면 정상입니다.

 

2. IAM Authenticator 설치

curl -o aws-iam-authenticator https://amazon-eks.s3-us-west-2.amazonaws.com/1.14.6/2019-08-22/bin/linux/amd64/aws-iam-authenticator
chmod +x ./aws-iam-authenticator
mkdir -p $HOME/bin && cp ./aws-iam-authenticator $HOME/bin/aws-iam-authenticator && export PATH=$HOME/bin:$PATH
echo 'export PATH=$HOME/bin:$PATH' >> ~/.bashrc
aws-iam-authenticator help

 

아래와 같이 수행되면 정상입니다.

 

3. kubeconfig 생성

EKS Cluster를 생성했던 IAM에게만 마스터 권한이 있기 때문에 생성하셨던 IAM 계정을 aws configure에 설정해주세요.

만약 다른 계정을 aws configure를 통해 설정하시고 싶다면, 아래 링크를 참조해서 설정해주시면 되겠습니다.

다른 IAM 사용자에게 권한 주기

aws sts get-caller-identity
aws eks --region region update-kubeconfig --name cluster_name
kubectl get svc

 

아래와 같이 수행되면 정상입니다.

 


 

자 이렇게 되면 쿠버네티스를 사용하기 위한 클러스터 구성이 끝났습니다.

이제 다음 포스트 부터 ECR에 올려놓은 컨테이너 이미지를 가지고 Pod 즉, 서비스를 띄운 후

 

각 카테고리별로 Kubernetes와 관련된 오픈소스들을 EKS에서 어떻게 사용하는 것인지 알아보도록 하겠습니다.