kubectl get nodes 과정
user -> kube-apiserver -> etcd cluster
정보 요청 이후 역 방향으로 정보 전달
kubectl pod 생성의 예시
포스트 방법으로 진행
curl -X POST /api/v1/namespaces/default/pods lalalal~
- Authentivate User
- Validate Request
- Retrieve data
- Update ETCD
- Scheduler
- 스케줄러는 API 서버를 지속적으로 모니터링하여 노드가 할당되지 않은 새 파드를 인식
- 스케줄러는 새 파드 파트를 배치할 올바른 노드를 식별하고 이를 다시 큐브 API 서버에 전달
-> API 서버가 etcd 클러스터의 정보 업테이트
-> API 서버가 해당 정보를 적절한 워커 노드의 kubelet에 전달
-> kubelet은 노드에 파드를 생성하고 컨테이너 런타임 엔진에 애플리케이션 이미지를 배포하도록 함
- kubelet
-> 완료 후 kubelet은 상태를 API 서버로 다시 업데이트
-> API 서버는 etcd 클러스터에서 데이터 다시 업데이트
: 변경 요청 시 비슷한 패턴으로 흘러감, API 서버를 거치는 형태
apiserver 루틴 정리
kubectl API: 요청 인증 및 유효성 검사
etcd 데이터 저장소: 데이터 검색 및 업데이트
- kubectl API 서버는 etcd 데이터 저장소와 직접 상호 작용하는 유일 구성요소
- 스케줄러, 컨트롤러, kubelet과 같은 다른 구성요소는 API 서버를 사용하여 각 영역 클러스터 업데이트 수행
kubectl-apiserver install
- kube 관리 도구를 사용하여 클러스터를 부트스트랩한 경우 불필요하지만
- 어려운 방법으로 설정 시 kubectl API 서버는 쿠버네티스 릴리즈 페이지에서 바이너리로 사용 가능

- 다운로드 후 kubenetes 마스터 노드에서 서비스로 실행되도록 구성하면 됨
kubectl-apiserver 매개 변수
- 많은 매개 변수 존재
- 도움될 만한 몇 가지 요소를 알아보자

- 서로 다른 구성 요소 간의 연결을 보호하는 데 사용되는 인증서
- 추후에 더 알아볼 것임
--etcd-servers=https://127.0.0.1:2379
- etcd 서버의 위치 지정하는 곳
- kubectl API 서버가 etcd 서버에 연결하는 방식
viewing apiserver-kubeadm
- 기존 클러스터에서 API server 옵션은 어떻게 확인할까?
- 클러스터를 설정하는 방법에 따라 다름
kubectl get pods -n kube-system
kubectl get pods -n kube-system 결과
kube-system kube-apiserver-master
- kube 관리자 도구로 설정하는 경우, kube 관리자는 마스터 노드의 kube 시스템 네임스페이스에 kube API 서버를 파드로 배포
cat /etc/kubernetes/manifests/kube-apiserver.yaml
- kube 관리자가 아닌 설정의 메니페스트 폴더에 있는 pod 정의 파일 내에서 옵션을 확인할 수도 있음
cat /etc/systemd/system/kube-apiserver.service
- kube API 서버 서비스를 확인하여 옵션 확인 가능
ps -aux | grep kube-apiserver
- 마스터 노드에서 프로세스를 나열하고 kubectl API server를 검색하면 실행 중인 프로세스와 적용된 옵션들 확인 가능