2023. 4. 8. 10:12ㆍKubernetes
kubectl 명령어를 실행하면,
kubectl utility 는 kube-api server에 도달한다.
그럼 kube api server는 요청을 인증하고, 유효성을 확인한다.
그럼 etcd cluster에서 데이터를 가져와서 응답한다.
3단계 임
1. Authenticate user (사용자 인증)
2. Validate Request (요청 유효성 검사)
3. Retrieve data (데이터 전달)
굳이 kubectl 을 쓸 필요는 없다.대신 API 를 직접 호출할수있다.
POST 요청등으로 가능!
POST로 pod 생성 예시
요청하면, 인증하고, 유효성 검증한다.
curl -X POST /api/v1/namesapces/default/pods ... [other]
-> Pod created!
1. Authenticate user (사용자 인증)
2. Validate Request (요청 유효성 검사)
3. Retrieve data (데이터 전달)
4. Update ETCD (ETCD에 업데이트) : node가 없는 pod가 생된다.
5. Scheduler(스케줄러) : 적절한 노드에 pod 를 위치시키고, api server에 보고한다.
(스케줄러는 API 서버를 지속적으로 모니터링 한다,
node 가 없는 pod 가 있구나를 알게된다.)
6. update ETCD: Api server는 etcd cluster에 업데이트한다.
7. api server는 적절한 worker node 의 kubelet 한테 정보를 넘겨준다.
8. Kubelet : kubelet은 그 노드에 pod 를 생성하고, application image를 배포하도록 컨테이너 엔진한테 지시한다.
9. kubelet 은 apiserver 한테 상태업데이트됐다고 보고한다.
10. api server는 그 데이터를 etcd cluster에 업데이트 한다.
스케줄러 모니터링할때 어떤 방식을 쓰는지 궁금하네
-> watch API 또는 일정 주기로 API 서버에 쿼리를 수행해서 클러스터의 상태를 모니터링 한다.
여기 정리했음: https://growing-dev.tistory.com/541
kubeadmin 도구를 이용해서 클러스터를 부트 스트랩하면 위 순서를 알필요 없지만,
하드웨어를 설정하는 경우 Kubernetes release 페이지에서 binary 형태로 이용가능하다.
kube-apiserver는 많은 매개변수로 실행된다.
지금 다 이해할 필요는 없지만, 잘 이해해두면 나중에 클러스터, 모든 구성요소 구성시에 쉬울거임!
인증, 승인, 암호화, 보안에 다양한 방식이 있어서 선택지가 많다.
이 섹션에서 볼 모든 구성요소는 연결된 인증서를 갖고 있다.
etcd-server 옵션은 etcd server의 ip를 명세한다.
kube-api server 옵션 보는법은 클러스터를 어떻게 셋팅했냐에 따라 다르다.
kubectl get pods -n kube-system
#kubeadmin tool 로 셋팅했다면
kube-apiserver의 master node pod 에 배포한다.
위치는
cat /etc/kubernetes/manifests/kube-apiserver.yaml
#kubeadmin 없이 셋팅했다면
cat etc/systemd/system/kube-apiserver.service
# 돌고있는 process 보는법
ps -aux |grep kube-apiserver
'Kubernetes' 카테고리의 다른 글
Kube Controller Manager (0) | 2023.04.08 |
---|---|
[Watch API] kube-scheduler 가 API server를 모니터링하는 방식 (0) | 2023.04.08 |
Docker 와 Container-D 이야기 (0) | 2023.04.07 |
Kubernetes Cluster 구성도 (0) | 2023.04.07 |
쿠버네티스 CKA 시험 정보 (0) | 2023.04.07 |