쿠버 네티스 기초에서 EKS 효율적 이용까지 설명이 된다.
<1> NDS 소개
<2> 왜 쿠버 네티스?
<3> 기존 아키텍처?
<4> 쿠버 네티스
<5> 쿠버 네티스 컬트 롤 플래인 = Master Node
<6> Amazon EKS 이점?
<7> CI/CD?
<8> EKS 효율적 이용 - NameSpace 사용
<9> EKS 효율적 이용 - 라벨링과 노드 실렉터 사용
<10> EKS 효율적 이용 - 클러스터 마이그래이션
<11> EKS 효율적 이용 - Spot 인스턴스 사용
<12> EKS 모니터링
<1> NDS 소개
농심그룹의 IT서비스 제공
300개 이상 고객
<2> 왜 쿠버 네티스?
1
장점?
디지털 트랜스포메이션 기반
개발 및 배포 속도
장애 대응 - 스케일 아웃
비용 절감 - 적은 VCPU, 메모리 사용으로 비용 절감
2
어려움?
조직문화를 변경해야 한다.
기존에 해보지 않았던 서비스를 다루어야 한다.
<3> 기존 아키텍처?
여러 애플리케이션이 하나의 서버에 운영
애플리케이션 하나가 문제 되면 전체 서비스 문제
<4> 쿠버 네티스
1
대규모 배포, 오토스케일링 및 관리를 간편하게 해 준다.
같은 역할을 하는 도구로 Docker Swarm , Apache Mesos 등이 있다.
2
원하는 상태를 유지하려는 구성이다.
서버를 5개로 유지한다고 세팅하면 계속 5개로 유지하는 것.
3
중앙제어 - 마스터 노드에서 워커 노드를 관리한다.
API를 통해 제어한다.
<5> 쿠버 네티스 컬트 롤 플래인 = Master Node
1
API Server?
클러스터의 API를 사용할 수 있도록 한다.
kubectl을 통해 API를 호출
2
Scheduler?
클러스터 자원 할당이 가능한 노드 중에 맞는 노드에 파드를 실행한다.
3
Controller Manager?
노드 유지, 파드 유지, 서비스 생성과 삭제를 한다.
<6> Amazon EKS 이점?
1
완전 관리형 K8s
2
가용성 보장
3
AWS 서비스와 연계 가능 = ECR, ALB , IAM 등 가능
<7> CI/CD?
1
CI?
Continous Intergration
연속적 통합
개발자를 위한 자동화 프로세스
개발자가 개발, 빌드, 테스트를 자동화하여 공유 리파지토리에 통합되어 관리하는 것이다.
2
CD?
Continous Deployment
지속적 배포
운영자들을 위한 자동화 프로세스이다.
EC2에 애플리케이션이 있다면 여기에 배포하는 것을 말한다.
구성?
CodeCommit - CodeBuild - CodeDeploy-------EC2
3
CI/CD로 EKS 배포?
CodeCommit - CodeBuild ---- ECR에 이미지 저장 ---------- (Pull ) fluxCD , argoCD , Spinnaker, Jenkins X--------- EKS
Pull 방식으로 주로 배포를 한다.
배포 툴이 권한을 가지고 배포 환경에 배포하는 것을 말한다.
배포 툴에게 AWS접근권한과 배포 권한을 할당해야 한다. 보안주의.
4
CI/CD를 Helm과 함께 사용?
fluxCD , argoCD , Spinnaker, Jenkins X--------HELM---------------- EKS
HELM은 쿠버 네이스 서비스를 패키 지하여 관리하고 배포하는 도구이다.
<8> EKS 효율적 이용 - NameSpace 사용
1
NameSpace 사용?
NameSpace는 클러스터 내에 물리적으로 워커 노드를 논리적으로 분리하는 단위이다.
리소스를 효율적으로 사용하게 한다.
서비스 단위로 구분하거나 운영 등급 , 조직 단위로 구분하기도 한다.
2
Default NameSpace를 기본적으로 사용한다.
3
NameSpace 기반으로 물리적 리소스 내에서 사용하도록 설정할 수 있다.
<9> EKS 효율적 이용 - 라벨링과 노드 실렉터 사용
1
파드는 랜덤 하게 배포된다.
특정 노드에 고정하여 배포할 수 있다.
2
라벨링과 노드 실렉터로 조금 완화가 가능하다.
통신이 많은 파트를 같은 노드에 배치하거나 등 가능하다.
<10> EKS 효율적 이용 - 클러스터 마이그래이션
1
클러스터 마이그래이션 해야 하는 경우??
기존 클러스터 사용 불가시
온프라미스와 IP대역이 겹쳐 통신이 불가할 때
2
순서?
EKS 클러스터, 노드 그룹을 만든다.
새로 배포
네임스페이스 등 이름을 똑같이 사용할 수 있다.
RDS나 기타 SaaS 서비스 사용하는 경우 엔드포인트나 방화벽 작업 필요.
도메인 서버에서 레코드 작업 변경도 필요하다.
<11> EKS 효율적 이용 - Spot 인스턴스 사용
1
Spot 은 R타입이 가장 저렴하다.
R=메모리 최적화
R4.large = 2 cpu, 16 mem
2
라벨링과 노드 실렉터로 Spot 인스턴스 전용 네임스페이스도 만들 수 있다.
3
CI/CD 사용해 파드 오토스 케일러를 구성 가능.
4
Spot 사용 시 회수 시 문제 해결?
AWS에서 제공하는 Node Termination Handler 배포하여 해결한다.
Ec2 메타 데이터를 모니터링한다.
스판 인스턴스는 중단 2분 전에 알려준다.
<12> EKS 모니터링
1
Application log 취합?
Application 모니터링
fluentd + OpenSearch + kibana
슬랙 연동
애플리케이션 모니터링에 OpenSearch (일 러스틱 서치)
2
컨테이너 모니터링?
Cloudwatch Container insight
이메일 , 슬랙 연동
3
프로메테우스 + 그라파나?
프로메테우스는 시계열 데이터 수집.
그라 파나로 시각화
4
디플로이 하고 결과를 알려주는 디플로이 노티피케이션?
Flux , ARGOCD
슬랙 , 팀즈 연동
같이 볼만한 자료
https://brunch.co.kr/@topasvga/2466
https://brunch.co.kr/@topasvga/2439
https://brunch.co.kr/@topasvga/1769
https://brunch.co.kr/@topasvga/1758
감사합니다