Devops 엔지니어 솔렐레 IT

[도커] 쿠버네티스 Kube-API Server 동작 및 명령어 본문

Devops 엔지니어가 알려주는 클라우드 지식/Docker, Kubernetes

[도커] 쿠버네티스 Kube-API Server 동작 및 명령어

솔렐레_ 2020. 7. 9. 09:00

안녕하세요. 솔렐레입니다.
오늘은 Kube-API Server에 대해서 설명하도록 하겠습니다.


[Kube-api Server 동작]
: 요청이 왔을 때 해당 요청이 유효한지를 검증하는 역할
1. kubectel 명령을 실행하면 kubectl 효용이 kube-appiserver에 도달한다. kube-api 서버는 먼저 요청을 인증하고 유효성을 검사한다. 그런 다음 ETCD 클러스터에서 데이터를 검색하고 응답한 정보로 응답한다. kubectel 명령줄을 사용할 필요는 없이 요청을 전송하여 API를 직접 호출할 수도 있다. 포드 생성의 예를 들면 이 경우 API 서버는 노드에 할당하지 않고 포드 개체를 생성하고, ETCD 서버의 정보를 업데이트하여 포드가 생성된 사용자를 업데이트한다.
2. 스케줄러는 계속해서 API 서버를 모니터링한다. 스케줄러가 할당된 노드가 없는 새 포드가 있다는 것을 확인하고 새로운 포드를 배치할 올바른 노드를 식별 후 이를 Kube API 서버에 다시 전달한다.
3. API server는 ETCD 클러스터에 정보를 업데이트하고 api 서버는 해당 정보를 적절한 worker 노드의 kubelet에 전달한다.
4. Kubelet은 노드에 포드를 생성하고 컨테이너 런타임 엔진에 애플리케이션 이미지를 배포하도록 지시한다.
5. 완료가 되면 Kubelet은 상태를 api 서버로 다시 업데이트하고,
api 서버는 ETCD 클러스터의 데이터를 다시 업데이트한다. 변경이 요청될 때마다 유사한 패턴으로 동작한다.
=> Authenticate User, Validate Request, Retrieve data, Update ETCD, Scheduler, Kubelet

 

Kube-api 서버는 클러스터를 변경하기 위해 수행해야 하는 모든 다양한 작업의 중심에 있습니다. ube-api 서버는 요청 인증 및 검증, ETCD 데이터 저장소의 데이터 검색 및 업데이트 등의 작업을 하며 kube-api 서버는 etcd 데이터 스토어와 직접 상호 작용하는 유일한 구성 요소입니다.

[명령어]

kubectl get nodes
curl –X POST /api/v1/namespaces/default/pods ...[other]

#install
wget https://storage.googleapis.com/kubernetes-release/release/v1.13.0/bin/linux/amd64/kube-apiserver

#View API server option
kubectl get pods -n kube-system
cat /etc/kubernetes/manifests/kube-apiserver.yaml
cat /etc/systemd/system/kube-apiserver.service
ps -aux | grep kube-apiserver

 

Comments