CKA 공부 40일차
in Devops on Kubernetes
Design a k8s Cluster
k8s 클러스터를 구성하는 목적은 무엇일까? 프로덕션 레벨의 애플리케이션의 배포, 개벌, 테스팅 등등의 목적이 있을 수 있다.
또 웹 애플리케이션, 빅데이터 분석, ML 플랫폼 등 여러 서비스를 제공할 수도 있다.
우리는 k8s Cluster를 디자인 하기 위해 그 목적을 명확히 해야한다.
Purpose
학습의 용도 (minikube, GCP/AWS과 같은 단일 노드 클러스터)
개발과 테스트 용도 (다중 노드 클러스터, kubeadm툴을 사용한 셋팅 또는 퍼블릭 클라우드의 도움)
프로덕션 레벨의 애플리케이션 배포 (아래에서 더 자세하게 다룸)
Hosting Production Applications
고가용성 다중 노드 클러스터
Kubeadm이나 GCP/AWS와 같은 플랫폼을 사용하여 클러스터 구축
최대 5000개의 노드
클러스터 내부에는 최대 15만개의 파드
최대 30만개의 클러스터
단일 노드 당 100개의 파드
Cloud or OnPrem?
온프레에서는 kubeadm을 사용할 수 있다.
- 클라우드라면 GCP의 GKE와 AWS의 Kops를 사용하면 된다.
애져의 AKS
Storage
고성능의 SSD 저장소
네트워크 기반 저장소
분리 볼륨
Node
가상 or 물리 장비
최소 4개의 노드 클러스터
마스터와 워커 노드들
리눅스 X86_64 아키텍처
마스터노드 역시 워크로드로 다뤄질 수 있으나(반드시 마스터 노드에 애플리케이션을 배포하지 말아야하는 것은 아님) 가급적이면 마스터노드는 애플리케이션이 배포되지 않는 편이 좋음
Master Nodes
- 마스터노드에는 Kube-apiserver, Controller Manager, Scheduler와 ETCD 클러스터로 구성되어있음