Search
🙊

AWS K8S 구축

Intro::

1. kops 사용 전 준비사항

1.
AWS 계정 및 IAM 설정:
클러스터 생성에 필요한 AWS 계정이 있어야 하며, kops가 사용할 IAM 사용자(또는 역할)에 충분한 권한이 부여되어 있어야 합니다.
2.
도메인 이름 및 Route53:
kops는 클러스터 이름이 완전한 도메인(FQDN) 형태여야 합니다. 예를 들어, mycluster.example.com과 같이 사용합니다.
도메인 이름은 AWS Route53에 등록되어 있거나, Route53에서 호스팅 영역을 생성해야 합니다.
3.
S3 버킷 생성:
kops는 클러스터 상태(state)를 저장하기 위해 S3 버킷을 사용합니다.
버킷 이름은 고유해야 하며, 예를 들어 s3://my-kops-state-store처럼 생성합니다.

2. kops 설치

MacOS:
bash 복사 brew update && brew install kops
Shell
복사
Linux:
kops 공식 릴리즈 페이지에서 바이너리를 다운로드하여 PATH에 추가합니다.
설치가 완료되면, 터미널에서 kops version 명령으로 버전을 확인할 수 있습니다.

3. 환경 변수 설정

터미널에서 아래 환경 변수를 설정합니다. (예시)
bash 복사 export KOPS_STATE_STORE=s3://my-kops-state-store export NAME=mycluster.example.com export AWS_DEFAULT_REGION=us-west-2
Shell
복사
KOPS_STATE_STORE: kops가 클러스터 상태를 저장할 S3 버킷 URL
NAME: 클러스터의 FQDN
AWS_DEFAULT_REGION: 클러스터를 구축할 리전

4. 클러스터 생성

kops를 사용해 클러스터 설정 파일을 생성합니다.
bash 복사 kops create cluster \ --name ${NAME} \ --zones ${AWS_DEFAULT_REGION}a,${AWS_DEFAULT_REGION}b \ --node-count 3 \ --node-size t3.medium \ --master-size t3.medium \ --dns-zone example.com
Shell
복사
-zones 옵션은 사용할 가용 영역을 지정합니다.
-node-count는 작업자 노드의 수를 지정합니다.
-node-size-master-size는 EC2 인스턴스 타입을 지정합니다.
-dns-zone은 Route53 호스팅 영역 도메인입니다.
이 명령은 클러스터 구성을 생성하고, 상태 파일을 S3 버킷에 저장합니다.

5. 클러스터 생성 및 업데이트

생성된 설정을 기반으로 실제 클러스터를 생성하려면 업데이트 명령을 실행합니다.
bash 복사 kops update cluster ${NAME} --yes
Shell
복사
이 명령은 클러스터 리소스를 AWS에 생성합니다.

6. 클러스터 검증

클러스터가 올바르게 생성되었는지 확인합니다.
bash 복사 kops validate cluster
Shell
복사
검증이 완료되면, kubectl을 사용해 클러스터에 접근할 수 있습니다.

7. CI/CD 및 추가 구성

CI/CD 연계:
쿠버네티스 클러스터에 애플리케이션을 배포하기 위해 ArgoCD, Jenkins, GitOps 도구 등을 연동합니다.
보안 및 모니터링:
클러스터 오토스케일러, CloudWatch, Prometheus 등을 설정해 모니터링 및 로깅을 구성합니다.
Harbor 등 이미지 레지스트리:
AWS 내 혹은 별도의 환경에 Harbor를 설치해 컨테이너 이미지를 관리하고, CI 파이프라인에서 이미지를 빌드하여 푸시하도록 구성합니다.

8. 결론

kops는 AWS에서 직접 쿠버네티스 클러스터를 구축할 때 널리 사용되는 도구로,
프로덕션 환경에서 필요한 고가용성, 확장성, 보안 등을 지원합니다.
환경 변수, S3 버킷, Route53 등 AWS 리소스와의 연계가 필요하며,
kops를 통해 클러스터 생성, 업데이트, 검증 과정을 자동화할 수 있습니다.
CI/CD 및 모니터링 등 추가적인 운영 도구와 연계하여 전체 파이프라인을 구축할 수 있습니다.
이와 같이 kops를 사용하여 AWS에 프로덕션급 쿠버네티스 클러스터를 구축하는 방법을 단계별로 진행하면, 실제 서비스에서 안정적으로 운영할 수 있는 환경을 마련할 수 있습니다.

References::