Kubernetes Cluster 구성요소
- Control plane : 쿠버네티스 메인서버, 쿠버네티스 클러스터를 관리하는 노드
- (Worker) node : 컨테이너(정확히는 파드)를 띄우도록 자원을 지원해주는 노드
=쿠버네티스 클러스터에서 파드에 커퓨팅 자원을 제공해주는 호스트
실습 Kubernetes Cluster 구성
Control plane - 192.168.56.11
Worker node1 - 192.168.56.21
Worker node2 - 192.168.56.22
실습 환경 구성 과정
- 도커 컨테이너 엔진 설치
- Docker 추가 레퍼지토리 구성
- 도커 패키지 설치(도커 cli, 컨테이너 런타임)
- Cgroup driver 변경(cgroup -> systemd : 쿠버네티스 버전변경에 따라)
- 쿠버네티스 패키지 설치 (kubeadm, kubelet, kubectl) - 버전을 고정시켜 사용
쿠버네티스 클러스터 구성 과정
- Control plane 주소 설정, pod network 지정
- Kubenetes 인증 설정
- Calico CNI 설치
- 노드들 클러스터에 가입
Control plane 구성 요소
- kube-apiserver
- Kubernetes의 모든 구성요소를 관리하는 서버
- 직접제어하지않고 다른 구성요소에게 지시를 내리는 형태로 제어함
- 모든 쿠버네티스의 상태정보를 갖고있음
- 모든 요청은 api-server를 거쳐 하게 됨
- 쿠버네티스 컴포넌트들 끼리 통신하는 것은 없다라고 봐도 됨
- apiserver 장애 발생시 kubernetes 동작 안함 -> apiserver(control plane)를 여러개 만듬
- etcd(엣시디)
- key-value형태로 작성된 데이터베이스
- 모든 클러스터의 데이터를 담음(apiserver와 동일하게 상태 알고있음)
- kube-scheduler
- 새로 생성되는 Pod를 감지하고 적절한 노드에 배정하느 역할을 수행하는 컴포넌트
- 가장 여유있는 노드를 찾음
- 배정까지만. 띄우진 않음
- 띄우는 것은 노드의 kubelet