구성 환경
사전 준비
: AWS 계정, SSH 키 페어, IAM 계정(관리자 수준 권한 부여) 생성 후 키
전체 구성도
: VPC 1개(퍼블릭 서브넷 3개, 프라이빗 서브넷 3개), EKS 클러스터(Control Plane), 관리형 노드 그룹(EC2 3대), Add-on
그림에 EKS Control Plane 구성은 별도 표기하지 않았습니다
- CloudFormation 스택 실행 시 파라미터를 기입하면, 해당 정보가 반영되어 배포됩니다.
- 실습 환경을 위한 VPC 1개가 생성되고, 퍼블릭 서브넷 3개와 프라이빗 서브넷 3개가 생성됩니다.
- CloudFormation 에 EC2의 UserData 부분(Script 실행)으로 Amazon EKS **설치(with OIDC, Endpoint Public)**를 진행합니다
- 관리형 노드 그룹(워커 노드)는 AZ1~AZ3를 사용하여, 기본 3대로 구성됩니다.
- 공용 저장소를 위해서 EFS 파일 시스템이 배포됩니다.
- Add-on 같이 설치 됨 : 최신 버전 - kube-proxy, coredns, aws vpc cni, aws ebs/efs csi driver - 링크
배포
CloudFormation 으로 자동 배포 - 서울리전 → 클릭 후 아래 파라미터 입력 후 스택 생성! 스택 이름은 기본 myeks가 입력됩니다!
- 파라미터 입력은 크게 3가지 종류로 구분됩니다
- eks-oneclick.yaml 내용:
curl -O <https://s3.ap-northeast-2.amazonaws.com/cloudformation.cloudneta.net/EKS/**eks-oneclick.yaml**
>
파라미터
: 아래 빨간색 부분은 설정해주는어야 할 것, 그외 부분은 기본값 사용을 권장
- <<<<< Deploy EC2 >>>>>
- KeyName : 작업용 bastion ec2에 SSH 접속을 위한 SSH 키페어 선택 ← 미리 SSH 키 생성 해두자!
- MyIamUserAccessKeyID : 관리자 수준의 권한을 가진 IAM User의 액세스 키ID 입력
- MyIamUserSecretAccessKey : 관리자 수준의 권한을 가진 IAM User의 시크릿 키ID 입력 ← 노출되지 않게 보안 주의
- SgIngressSshCidr : 작업용 bastion ec2에 SSH 접속 가능한 IP 입력 (집 공인IP/32 입력), 보안그룹 인바운드 규칙에 반영됨
- MyInstanceType: 작업용 bastion EC2 인스턴스의 타입 (기본 t3.medium) ⇒ 변경 가능
- LatestAmiId : 작업용 bastion EC2에 사용할 AMI는 아마존리눅스2 최신 버전 사용
- <<<<< EKS Config >>>>>
- ClusterBaseName : EKS 클러스터 이름이며, myeks 기본값 사용을 권장 → 이유: 실습 리소스 태그명과 실습 커멘드에서 사용
- KubernetesVersion : EKS 호환, 쿠버네티스 버전 (기본 1.27 버전 사용) ⇒ 변경 가능
- WorkerNodeInstanceType: 워커 노드 EC2 인스턴스의 타입 (기본 t3.large) ⇒ 변경 가능
- WorkerNodeCount : 워커노드의 갯수를 입력 (기본 3대) ⇒ 변경 가능
- WorkerNodeVolumesize : 워커노드의 EBS 볼륨 크기 (기본 30GiB) ⇒ 변경 가능
- <<<<< Region AZ >>>>> : 리전과 가용영역을 지정, 기본값 그대로 사용
- Tip.
CloudFormation 스택 배포 한줄 실행!
← 실행하는 PC에 aws cli 설치되어 있고, aws configure 자격증명 설정 상태.
EC2 생성 수량 부족 실패 발생 시
: 해당 사용자 계정의 해당 리전에 EC2 최대 갯수 제한 일 경우, Service Quotas (EC2) 증설 요청으로 해결 가능 - 링크 EC2 요청
- Limit Type(EC2 Instances) ⇒ 서울 리전, All Standard (A, C, D, H, I, M, R, T, Z) Instances, New limit value(40 정도)
배포 확인
- 작업용 EC2 에 SSH 접속 (SSH 키 파일 사용) : 쿠버네티스 정상 설치 확인 ← 스택 생성 시작 후 20분 후 접속 할 것
- Add-on 정보확인 : 최신 버전 - kube-proxy, coredns, aws vpc cni aws ebs/efs csi driver - 링크 mgmt
- 기본 설정 작업 : AWS LB Ctrl 설치, ExternalDNS 설치, kube-ops-view 설치, 스토리지 클래스 생성, AWS Cert Manager 인증서 확인
- 프로메테우스-스택 설치(+metrics-server) : 모니터링에 필요한 여러 요소를 **단일 차트(스택)**으로 제공 ← 시각화(그라파나) 등 - Helm
- Tip. 자리 이동으로 인해 작업용EC2에 접속하는 공인IP가 변경 시 보안 그룹에 추가하는 방법
- (참고) 기본 작업 CMD 모음