- kubernetes로 보내지는 모든 명령을 수행함
- 모든 클러스터 내부 통신은 kube-apiserver 통해 수행
- pod 생성 명령을 받으면 pod의 구성을 확인하고 pod 내에 Container 생성
- Container Runtime에 Container 생성 명령
>- 초기 kubelet → Docker
- 중간 kubelet → CRI(Container Runtime Interface) → Docker
- 나중 kubelet - CRI-Plugin - Docker
- Kubernetes 클러스터를 간편하게 설치/초기화 할 수 있게 도와주는 도구(클러스터 설정 자동화)
- kubeadm init, kubeadm join 등
- 어떤 노드에 pod를 배치할지 담당
- 리소스 사용율, 제약조건 등 기반으로 노드에 pod 할당
- Kubernetes 원하는 상태 유지
- Kubernetes 리소스(Pod, Node, ReplicaSet 등)의 실제 상태(current state)를 원하는 상태(desired state)로 자동으로 조정해주는 도구
- key-value 저장소
- configMap, secret, pod 상태 등
- 각 노드에서 실행되며 클러스터 내부 네트워크 트래픽 라우팅
- iptables 또는 IPVS 기반하여 앱 요청을 적절한 pod로 전달
- 사용자와 API Server 상호작용 도구
1~4 : 노드 공통
5~6 : Master Node
- rocky linux 기본 설정
- 패키지 업데이트
- 타임존 설정
- 사전작업
- 방화벽 해제
- 스왑 비활성화
- 컨테이너 런타임 설치(containerd)
- iptables 세팅
- option2
- docker engine 설치(repo 설정, containerd 설치)
- 컨테이너 런타임 cri 활성화
- kubeadm 설치
- repo 설정
- SELinux 설정
- kubelet, kubeadm, kubectl 패키지 설치
- kubeadm - 클러스터 생성
- 클러스터 초기화
- kubectl 사용 설정
- CNI Plugin 설치(calico)
- Master에 Pod 생성할 수 있도록 설정
- 쿠버네티스 편의기능 설치
- kubectl 자동완성 기능
- Dashboard 설치
- Metrics Server 설치