클러스터 설계
팁
클러스터 설계 및 설치 섹션 전체는 시험을 위해 외워야할 내용은 없다. (docs에 나와있기 때문)
클러스터 설계
방향성 확립
- 목적
- 학습
- 개발/테스트
- 프로덕션
- 환경
- Cloud Managed Service (EKS, GKE 등)
- 온프레미스
- 워크로드, 규모
- 애플리케이션의 종류 (웹, 빅데이터, AI 등)
- 애플리케이션의 규모
- 트래픽
- 지속적인 트래픽
- 간헐적인 폭증
목적별 클러스터 구성 방법
- 학습용
Minikube또는kubeadm을 사용한 단일 노드 클러스터 (로컬 VM 또는 클라우드)Minikube:VirtualBox같은 가상화 도구로 알아서 VM을 생성하고 그 위에 구성요소를 실행함kubeadm: VM 프로비저닝은 사용자가 직접 해야함
- 개발 및 테스트용
- 단일 마스터 노드 + 다중 워커 노드
- 도구:
kubeadm, GKE, AKS 등
- 프로덕션용
- 고가용성(HA) 구성 필수: 다중 마스터 노드(Multi-master) 권장
Turnkey Solutions- AWS (
Kops),OpenShift,Cloud Foundry,VMware Cloud PKS,Vagrant등
- AWS (
Hosted SolutionsGKE,AKS,EKS,OpenShift Online등
정보
Hosted Solutions는 어느정도 이해가 되는데, 왜 오픈소스 사용하지 않고 비용이 드는 Turnkey Solutions 사용하나요?
- 전체 유지보수 비용 측면에서 바라봐야한다.
- 문제 해결 측면
- 오픈 소스 쿠버네티스를 사용하다가 장애가 발생하면 직접 해결해야함
Turnkey Solutions를 사용하다가 장애가 발생하면 SLA에 따른 기술 지원을 받을 수 있음
- 보안
- 오픈 소스는 업데이트가 매우 빠르지만 그만큼 취약점이 노출될 가능성도 큼
Turnkey Solution업체들은 취약점을 점검한 뒤 안정성이 검정된 버전을 제공함.- 기업 입장에서는 보안 사고 한 번의 비용보다 솔루션 비용이 훨씬 저렴함
- 책임 소재의 리스크도 줄일 수 있음
- 통합된 부가기능
- 모니터링, CI/CD, GUI 기능 등등 많은 기능들을 직접 오픈소스 쿠버네티스에 설치하고 운영할 수 있지만, 이들을 운영하는데 사용되는 인력또한 비용이다.
클러스터 규모 및 리소스
- 최대 지원 규모
- 노드: 최대 5000개
Pod: 최대 150,000개 (노드 당 최대 100개)- 컨테이너: 전체 300,000개
- 리소스 산정
- 클라우드(GCP, AWS 등)은 노드 수에 따라 적절한 마스터 노드 인스턴스 크기를 자동으로 선택해준다.
- 온프레미스 구축 시에는 위와같은 클라우드 제공업체의 인스턴스 크기 표(노드 갯수에 따른 마스터 노드 스펙)를 참고하여 마스터 노드 스펙을 정하는 것이 좋다.
스토리지 및 인프라
- 스토리지
- 고성능 워크로드를 운영하는 경우: Concurrent한 스토리지 접근을 위해 SSD 기반 스토리지 사용
- 공유 볼륨(
Pod의PV등의 목적으로)으로 사용하기 위한 네트워크 기반 스토리지 필요- 정적 프로비저닝을 하든
StorageClass로 동적 프로비저닝을 하든..
- 정적 프로비저닝을 하든
- 인프라
- 물리 서버(Bare Metal) 또는 VM 모두 상관 없음
- 64비트 리눅스 기반 OS 사용해야함
노드 역할
- 마스터 노드
- Control Plane 컴포넌트(
kube-apiserver,etcd등) 실행 - 프로덕션 환경에서는 마스터 노드에 워크로드를 배치하지 않는 것이 좋음
- 몰랐는데, 마스터 노드에 기본적으로 워크로드가 배치되지 않는
taint를 적용 시켜놓는 것이kubeadm이 해주는 것이었다.
- 몰랐는데, 마스터 노드에 기본적으로 워크로드가 배치되지 않는
- 대규모 클러스터의 경우
etcd를 마스터 노드에서 분리하여 별도의 클러스터로 구성하기도 함
- Control Plane 컴포넌트(
- 워커 노드
- 실제 애플리케이션 워크로드 실행
레퍼런스
- Udemy - Certified Kubernetes Administrator (CKA) with Practice Tests (Mumshad)