Kubernetes

[Kubernetes] Kube-API Server

thdwldud 2026. 6. 1. 23:04
728x90
반응형

해당 내용은 Udemy의 Certified Kubernetes Administrator(CKA) with Practice Tests 강의를 공부한 내용입니다.

 

Certified Kubernetes Administrator (CKA) with Practice Tests

<p><strong>CKA Certification Course – Certified Kubernetes Administrator</strong></p><p>Kubernetes is one of the highest trending technology in Cloud Computing as of today. Kubernetes had the fastest growth in job searches, over 173% from a year before,

www.udemy.com

 

Kube API Server는 Kubernetes 클러스터의 중앙 제어 컴포넌트로, 모든 요청을 처리하고 각 구성 요소 간의 상호작용을 조율

 

Kube API Server의 역할

kubectl get nodes

 

요청 흐름 : 

  1. kubectl → API Server로 요청 전송
  2. API Server : 
    • 사용자 인증 (Authentication)
    • 요청 검증 (Validation)
    • etcd에서 데이터 조회
  3. 결과 반환

예시 출력 :

NAME      STATUS   ROLES    AGE   VERSION
master    Ready    master   20m   v1.11.3
node01    Ready    <none>   20m   v1.11.3

 

API Server 요청 처리 흐름 (Pod 생성 예시)

API로 Pod 생성 요청을 보내면 : 

curl-X POST /api/v1/namespaces/default/pods

동작 과정 : 

  1. 요청 인증 및 검증
  2. Pod 객체 생성 (아직 Node 미할당 상태)
  3. etcd에 저장
  4. 요청자에게 생성 완료 응답

 

이후 내부 동작 흐름

1. Scheduler

  • Node 미할당 Pod 감지
  • 적절한 Node 선택

2. API Server

  • etcd 업데이트 (Node 할당 정보)

3. Kubelet

  • Pod 생성 (컨테이너 런타임 사용)
  • 상태를 API Server로 전달

→ 모든 과정의 중심에는 API Server 가 있음

 

핵심 역할 정리

  • 모든 요청의 입구 (Entry Point)
  • 인증 / 인가 처리
  • 요청 검증
  • etcd와 데이터 동기화
  • Scheduler, Kubelet과 통신

 

배포 및 설치

kubeadm 사용시

  • API Server는 자동으로 구성됨
  • kube-system namespace에 Pod로 실행

확인 : 

kubectlget pods-n kube-system

 

수동 설치 시

직접:

  1. 바이너리 다운로드
  2. 설정
  3. 서비스 등록

예시:

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

 

주요 설정 옵션

ExecStart=/usr/local/bin/kube-apiserver \
--advertise-address=${INTERNAL_IP} \
--authorization-mode=Node,RBAC \
--etcd-servers=https://127.0.0.1:2379 \
--client-ca-file=/var/lib/kubernetes/ca.pem \
--kubelet-client-certificate=/var/lib/kubernetes/kubernetes.pem \

 

주요 포인트 : 

  • etcd 연결 설정 (--etcd-servers)
  • 인증서 설정 (TLS)
  • RBAC 권한 관리

설정 확인 방법

1. Pod 내부 확인

kubectl get pods -n kube-system
spec:
  containers:
  - command:
    - kube-apiserver
    - --authorization-mode=Node,RBAC
    - --advertise-address=172.17.0.32

 

2. systemd 서비스 확인

cat /etc/systemd/system/kube-apiserver.service

 

구성 요소 관계 정리

Component Role Command/Action Example
kubectl API 요청을 보내는 CLI 도구 kubectl get nodes
Kube API Server 요청 처리, 인증 및 유효성 검사를 위한 구성 요소 API 요청을 처리하고 etcd와 상호작용
Scheduler API 서버를 모티러이하여 할당되지 않은 Pod를 찾고 워커 노드에 할당 새로 생성된 Pod에 노드를 자동으로 할당
Kubelet 워커 노드에서 실행되어 Pod 수명 주기를 관리하고 상태를 API 서버로 전달 컨테이너 런타임과 상호작용하여 이미지 배포
etcd 클러스터 구성을 저장하는데 사용되는 키-값 저장소 클러스터 상태 데이터 저장

 

핵심 정리

  • API Server = Kubernetes의 “중앙 관제 시스템”
  • 모든 요청은 API Server를 거침
  • etcd와 직접 통신
  • 클러스터 모든 컴포넌트와 연결됨
728x90
반응형

'Kubernetes' 카테고리의 다른 글

[Kubernetes] Kube Scheduler  (0) 2026.06.14
[Kubernetes] Kube Controller Manager  (0) 2026.06.08
[Kubernetes] ETCD in Kubernetes  (0) 2026.05.25
[Kubernetes] ETCD For Beginners  (0) 2026.05.18
[Kubernetes] Docker vs ContainerD  (0) 2026.05.09