master
node가 필요함!master
node
- API Server
- k8s의 프론트엔드의 역할
- user, 디바이스 관리, CLI 등이 k8s cluster와 상호작용을 하려면 API 서버와 통신하게 됨
- ETCD service
- 분산되고 책임있는 key-value 저장소
- cluster를 관리할 때 사용되는 모든 데이터를 저장
- cluster 내부에 다수의 master와 다수의 node가 있을 때, etcd는 분산해서 cluster 내의 모든 node의 정보를 저장함
- master 간에 충돌이 없는 것을 보장하기 위해 lock을 구현해야 함
- kubelet service
- cluster의 각 node에서 실행되는 agent
- 각 node에서 예상대로 container가 실행되고 있는지 확인해야 함
- Container Runtime
- container를 실행하는 기반 SW
- 보통 docker
- Controller
- node, container, endpoint가 다운되면 인지하고 알려줌
- 새 container를 up 하도록 결정함
- Scheduler
- worker나 container를 여러 node에 분산함
- 새로 생성된 컨테이너를 찾아 노드에 할당
Master
, Worker
: k8s를 구성하는 2가지 타입의 server Master
, slave
로 어떻게 구분될까?worker node
: container가 실행되는 곳container runtime(docker)
, kubelet
container runtime(docker)
을 설치해야 함kubelet
agent가 있어야 함master
서버 : kube-apiserver
가 있어야 master가 됨etcd
, controller
, scheduler
etcd
프레임워크에서 사용하는 key-value 형태로 정보가 master에 저장됨용도
명령어
kubectl run hello-minikube
kubectl cluster-info
kubectl get nodes