전공공부
[K8S - CKA] kube-apiserver 본문
1. Kube-apiserver
정의 : 주요 관리 구성 요소중 하나임, kubectl으로 명령어 요청을 보내면 kube apiserver가 처음 요청을 받아서 ETCD CLUSTER로 접속하여 알맞은 값을 가져옴. 그리고, 직접 ETCD 저장소와 소통하는 유일한 컴포넌트 중 하나이다.
흐름 :
- 유저 체크
- 요청이 올바른지 체크
- data 검색 및 조회
- ETCD 데이터 업데이트
- 만일 POD가 Worker Node에 있지 않았다면 새 포드를 Scheduler에 등록하고 API 서버는 해당 정보를 적절한 Worker Node에 할당함
- 완료되면 kubelet에 해당 요청들을 api server를 이용해서 업데이트 됌
kube-apiserver.service
ExecStart=/usr/local/bin/kube-apiserver \
--advertise-address=${INTERNAL_IP} \
--allow-privileged=true \
--apiserver-count=3 \
--authorization-mode=Node,RBAC \
--bind-address=0.0.0.0 \
--client-ca-file=/var/lib/kubernetes/ca.pem \
--enable-admissionplugins=Initializers,NamespaceLifecycle,NodeRestriction,LimitRanger,ServiceAccount,DefaultStorageClass,Reso
urceQuota \
--enable-swagger-ui=true \
--etcd-cafile=/var/lib/kubernetes/ca.pem \
--etcd-certfile=/var/lib/kubernetes/kubernetes.pem \
--etcd-keyfile=/var/lib/kubernetes/kubernetes-key.pem \
--etcd-servers=https://127.0.0.1:2379 \
--event-ttl=1h \
--experimental-encryption-provider-config=/var/lib/kubernetes/encryption-config.yaml \
--kubelet-certificate-authority=/var/lib/kubernetes/ca.pem \
--kubelet-client-certificate=/var/lib/kubernetes/kubernetes.pem \
--kubelet-client-key=/var/lib/kubernetes/kubernetes-key.pem \
--kubelet-https=true \
--runtime-config=api/all \
--service-account-key-file=/var/lib/kubernetes/service-account.pem \
--service-cluster-ip-range=10.32.0.0/24 \
--service-node-port-range=30000-32767 \
kube-apiserver는 위 중요한 매개변수를 이용해서 구성 요소들을 구성할 수 있습니다.
그리고, api-server가 요청시에 위와 같은 유저 체크 및 요청 체크 등을 하기 때문에 기본적으로 설정할 것이 많습니다.
다수의 인증서들은 각각의 컴포넌트가 유효한지 체크합니다. (우선은 연결된 인증서들이 존재한다는 것만 체크하고 넘어갑니다.)
2. View api-server - kubeadm
kubectl get pods -n kube-system
위 명령어를 이용해서 kube-system 네임스페이스 하부의 kube-apiserver-master를 확인 할 수 있습니다.
그리고, 상세하게 정의된 옵션을 보기 위해서 아래 옵션을 사용 할 수 있습니다.
3. View api-server options - kubeadm
cat /etc/kubernetes/manifests/kube-apiserver.yaml
해당 명령어로 볼 수 있으며 spec으로 정의된 부분을 참고하면 옵션을 볼 수 있습니다.
ps -aux | grep kube-apiserver
이것을 이용하면 지금 돌아가는 kube-apiserver의 상태 및 옵션을 확인 할 수 있습니다.
'Study > K8S' 카테고리의 다른 글
[K8S - CKA] Kube Scheduler (0) | 2023.08.15 |
---|---|
[K8S - CKA] K8S Controller Manager (0) | 2023.08.15 |
CKA 1차 강의 정리 (0) | 2023.08.13 |
[K8S - LAB - 02] 오답 노트 - CKAD (1) | 2023.06.03 |
[K8S LAB - 01] 오답 노트 - CKAD (0) | 2023.05.27 |