Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

전공공부

[K8S - CKA] kube-apiserver 본문

Study/K8S

[K8S - CKA] kube-apiserver

monitor 2023. 8. 13. 17:14

1. Kube-apiserver


정의 : 주요 관리 구성 요소중 하나임, kubectl으로 명령어 요청을 보내면 kube apiserver가 처음 요청을 받아서 ETCD CLUSTER로 접속하여 알맞은 값을 가져옴. 그리고, 직접 ETCD 저장소와 소통하는 유일한 컴포넌트 중 하나이다.

흐름 :

  1. 유저 체크
  1. 요청이 올바른지 체크
  1. data 검색 및 조회
  1. ETCD 데이터 업데이트
  1. 만일 POD가 Worker Node에 있지 않았다면 새 포드를 Scheduler에 등록하고 API 서버는 해당 정보를 적절한 Worker Node에 할당함
  1. 완료되면 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