반응형
모든 자료는 온라인으로 제공되는 Naver Cloud의 공인교육과정을 참고하였으며,
Naver Cloud Professional 자격증을 준비하시는 분들께 조금이나마 도움이 될까하여 정리해두었던 내용을 공유합니다.
2023년에 작성된 내용이며, VPC Platform 기반의 강의 내용을 정리한 것이니 참고 바랍니다.
쿠버네티스의 주요 기능
- Automatic Binpacking
Worker node 의 가용성을 유지하면서 보유한 리소스를 충분히 활용할 수 있도록 스스로 스케줄링하며 컨테이너를 배치함 - Storage Orchestration
로컬 저장소를 선택하거나 NFS, iSCSI 등과 같은 공유 네트워크 스토리지를 컨테이너에 할당/마운트 하여 사용 가능함 - Secret & Configuration Management
Application 연동 및 접근 제어를 위한 보안키, 설정 내역을 컨테이너 이미지의 변경없이 업데이트 할 수 있고 외부로 노출하지 않고 사용 가능함
(예를들어 컨테이너 이미지 안에 환경변수를 놓고 싶다면 별도의 환경변수 파일로 관리 가능. 또는 컨테이너를 구동하기 위한 ID/PW 값을 시크릿이라는 객체로 별도 관리 가능.) - Horizontal Scailing
CPU사용률과 같은 metric을 기반으로 pod의 Deployments, replicaset을 스케줄링 하여 수평적 확장 가능함 (pod 레벨의 scail out 가능. Pod에 대한 CPU 사용량이 일정 수준을 넘어갔을 때 pod 확장 가능.) - Service Discover & Load Balancing
쿠버네티스 안에는 서비스라는 객체가 있고, 이 안에는 세가지 종류의 객체가 있다. 이 중 하나가 로드밸런서 역할을 함. 컨테이너에 IP주소를 자동으로 할당하고 클러스터 내 트래픽을 로드밸런싱 할 수 있는 컨테이너 세트에 단일 DNS 이름을 할당함. - Self Healing
실패한 컨테이너를 자동으로 다시 시작하고, 사용자가 정의한 헬스체크에 응답이 없는 컨테이너를 종료함. 워커 노드 장애 시 사용 가능한 다른 워커 노드에 컨테이너를 다시 가동함. - Automatic Rollbacks & Rollouts
컨테이너의 응용 프로그램이나 구성에 대한 변경사항을 점진적으로 업데이트 하고 문제 발생 시 자동으로 롤백할 수 있음.
쿠버네티스 컴포넌트
쿠버네티스는 기본적으로 마스터 노드(Control Plane)와 워커 노드들로 구성되어 있다.
- 마스터노드
- kube-api-server : 사용자나 워커노드들과 통신을함
- 워커 노드
- kublet : kube-api-server와 통신할 때 사용되는 하나의 에이전트
- kube-proxy : 네트워크를 담당하는 역할 수행
Pod
- 쿠버네티스 객체 모델 중 만들고 배포할 수 있는 가장 작고 간단한 단위이다.
- 파드는 쿠버네티스 애플리케이션의 기본 실행 단위이다.
- 하나의 컨테이너일 수도 있고, 여러대의 컨테이너의 집합일 수도 있음.
- 단일 컨테이너만 동작하는 파드
단일 컨테이너 당 한개의 파드는 모델은 쿠버네티스 사용 사례 중 가장 흔하다. 이 경우 한개의 파드가 단일 컨테이너를 감싸고 있다고 생각할 수 있으며, 쿠버네티스는 컨테이너가 아닌 파드를 직접 관리한다. - 함께 동작하는 작업이 필요하단 다층 컨테이너가 동작하는 파드
아마 파드는 강하게 결합 되어 있고 리소스 공유가 필요한 다중으로 함께 배치된 컨테이너로 구성되어있을 것이다. 이렇게 함께 배치되어 설치된 컨테이너는 단일 결합 서비스 단위일 것이다. - 한 컨테이너는 공유 볼륨에서 퍼블릭으로 파일들을 옮기고 동시에 분리되어 있는 “사이드카”컨테이너는 그 파일들을 어데이트하거나 복구한다. 파드는 이 컨테이너와 저장소 리소스들을 한개 여러 관리 가능한 요소로 묶는다.
- 단일 컨테이너만 동작하는 파드
Deployment
- Pod이 실제 구동되기 위한 근간 이미지를 지정하는 객체
- 디플로이먼트란, 애플리케이션을 다운타임 없이 업데이트 가능하도록 지원해주는 쿠버네티스 리소스
- 사용자의 기대상태(Desired State)를 유지하도록 하는 Controller
- Deployment는 ReplicaSet에 대한 Update를 담당.
- ReplicaSet은 사용자가 선언한 기대상태인 Replica의 수를 지속적으로 확인하며 유지시킴.
- 쿠버네티스에 Pod이 몇개 운영되고 있는지 label(Pod의 이름표)를 통해 확인
Demonset
- K8S 클러스터 내 모든 노드에서 Pod 의 복제본을 실행하도록 함
- 클러스터에 노드가 추가되면 Pod도 추가, 노드가 삭제되면 해당 노드에서 기동되던 Pod도 삭제.
- nodeSelector, podAffinity와 같은 조건을 명시하면 데몬셋 컨트롤러는 조건에 일치하는 노드에만 Pod을 생성
- 예를들어 Pod이 특정 워커노드에서 구동되야 한다거나, 아니면 모든 워커노드에서 구동되어 한다거나 할 때 Demonset 객체를 사용하면 됨.
- 데몬셋 정의 시 기본은 모든 워커노드에 구동
- 특정 워커노드에 구동되도록 하고 싶으면 nodeSelect 사용
Service
- 클러스터 내 pod들에게 접근하기 위한 방법으로 사용
- 여러 Pod를 묶어 Healthy한 Pod로 traffic라우팅 하는 로드밸런싱 기능 제공
- 클러스터의 Service CIDR 중에서 지정된 IP로 생성 가능
- 서비스 이름은 클러스터 내 고유한 DNS로 동작
⌾ 서비스 내 객체들 (Service Type)
- Cluster IP
- 기본 옵션을 클러스터 내부에서 사용할 수 있는 Cluster IP 타입
- 클러스터 외부에서 내부 pod로 접근하기 위해서는 Service Type을 LoadBalaner나 NodePort로 변경해야함.
- LoadBanacer
- NodePort + CSP의 External LB
- ExternalLB가 service에서 지정된 port로 Traffic을 받아 NodePort로 할당된 port로 프록시
- → 로드밸런서용 도메인이나 기타 접속 포인트를 통해 로드밸런서가 트래픽을 받으면 연결되어 있는 Pod으로 라우팅해줌.
- Nodeport
- 일종의 포트포워딩 방식
- 가상머신에 할당된 공인 혹은 사설 IP 서비스로 접근
- 보통 30000 - 32768 포트를 이용하여 Pod으로 트래픽을 포트포워딩
Ingress
- 외부에서 오는 Traffic들을 클러스터 내부의 Service로 라우팅하기위한 규칙집합
- NCR은 host 기반 및 url path기반 라우팅에 대한 규칙 사용Ingress를 이용하여 HTTP Request의 Host와 URL Path 정보를 통해 타게 Pod로 라우팅
- Ingress에 대한 service 타입 지정은 외부 traffic 수신 위해, NodePort나 LoadBalancer지정 필요
쿠버네티스 모니터링 도구
- 그라파나
- 오픈소스 메트릭 데이터 시각화 도구로 다양한 데이터 소스들의 데이터 시각화를지원하는 모니터링 툴
- 메트릭/로그를 시각화 하는 대시보드
- 다양한 DB를 연결하여 DB의 데이터를손쉽게 시각화 가능
- 시각화한 그래프에서 특정 수치 이상으로 값이 오르면 알람값이 치솟으면서 알람 발송
- 데이터 소르를 정의하고 해당 데이터 소스에 쿼리를 통해서 데이터를 동적으로 가져옴
- 오픈소스 메트릭 데이터 시각화 도구로 다양한 데이터 소스들의 데이터 시각화를지원하는 모니터링 툴
- 프로메테우스
- 메트릭 수집, 시각화, 알림, 서비스 디스커버리 기능을 모두 제공하는 오픈 모니터링 시스템
- 대상 시스템으로부터 각종 모니터링 지표를 수집하여 저장하고 검색할 수 있음
- 그라파나를 통한 시각화 지원
- 많은 시스템을 모니터링 할 수 있는 다양한 플러그인
- 쿠버네티스의 메인 모니터링 시스템으로 사용됨
- 주기적으로 모니터링 대상 시스템으로부터 pulling방식으로 메트릭을 읽어서 수집
- 메트릭 수집, 시각화, 알림, 서비스 디스커버리 기능을 모두 제공하는 오픈 모니터링 시스템
네이버클라우드플랫폼 Kubernetes service 이해하기
빠르고 간편하게 구축할 수 있는 컨테이너 오케스트레이션 서비스
Legacy Kubernetes |
|
Kubernetes Service |
|
728x90
반응형
'Devops > Naver Cloud' 카테고리의 다른 글
Storage(2)- Naver Cloud의 Storage 서비스 (Object Storage, Archive Storage, Nas) (0) | 2024.12.10 |
---|---|
Storage(1) - File System (1) | 2024.12.09 |
Container - Docker개념과 관련 서비스 (1) | 2024.12.04 |
Compute Operation (2)- 서버이미지, 스토리지, 스냅샷, 공인 IP할당, NIC (0) | 2024.12.03 |
Compute Operation (1)- Server 기본 기능 (0) | 2024.11.22 |