Kubernetes Cluster에서 모든 요청은 API Server를 통해 처리됩니다.
사용자가 kubectl 명령어를 실행하거나, Controller가 상태를 확인하거나, Scheduler가 Pod 배치를 요청하는 모든 과정은 API Server를 거칩니다.
예:
사용자
↓
kubectl apply
↓
API Server
↓
etcd 저장
↓
Controller 동작
↓
Pod 생성
Kubernetes API Server는 Control Plane의 중심 역할을 담당하는 가장 중요한 Component입니다.
| 구성 요소 | 역할 |
|---|---|
| API Server | 모든 Kubernetes 요청 처리 |
| Authentication | 사용자 확인 |
| Authorization | 권한 확인 |
| Admission Controller | 요청 검증 |
| etcd | 상태 저장 |
API Server 구조를 이해하면 Kubernetes 인증, 보안, Cluster 통신 흐름을 이해할 수 있습니다.
Kubernetes API Server란?
Kubernetes API Server는 Kubernetes Object를 관리하는 중앙 통신 Gateway입니다.
모든 Component는 직접 통신하지 않고 API Server를 통해 데이터를 주고받습니다.
구조:
kubectl
↓
API Server
↓
etcd
또는:
Controller Manager
↓
API Server
↓
etcd
API Server가 Kubernetes 전체 통신의 중심입니다.
Kubernetes Architecture에서 API Server 위치
Control Plane 구조:
kubectl
|
|
API Server
/ | \
/ | \
etcd Scheduler Controller
|
kubelet
API Server는 모든 Component 사이의 중간 역할을 수행합니다.
Kubernetes API Server 주요 역할
1. Kubernetes API 제공
사용자는 API를 통해 Resource를 생성합니다.
예:
kubectl create deployment nginx
내부 과정:
kubectl
↓
API 요청
↓
API Server 처리
2. Object Validation
요청한 YAML 파일이 올바른지 검사합니다.
확인:
- API Version
- Kind
- Schema
- Required Field
잘못된 설정은 저장되지 않습니다.
Kubernetes API Server와 etcd 관계
API Server는 etcd와 직접 연결되는 유일한 Component입니다.
흐름:
Request
↓
API Server
↓
Validation
↓
etcd 저장
↓
Response 반환
etcd 직접 접근을 제한하여 안정성과 보안을 유지합니다.
Kubernetes API Server 인증(Authentication)
API Server는 요청자를 먼저 확인합니다.
인증 방식:
| 방식 | 설명 |
|---|---|
| Certificate | Client 인증서 |
| Token | Bearer Token |
| ServiceAccount | Pod 인증 |
| OIDC | 외부 Identity Provider |
인증 성공 후 다음 단계로 넘어갑니다.
Kubernetes API Server Authorization
인증 후에는 권한을 확인합니다.
질문:
“이 사용자가 이 작업을 할 수 있는가?”
예:
User A:
Pod 조회 가능
Pod 삭제 불가능
이 과정이 Authorization입니다.
Kubernetes RBAC와 API Server 관계
Kubernetes 권한 관리는 RBAC 기반으로 동작합니다.
구조:
User
↓
Role / ClusterRole
↓
RoleBinding
↓
Permission 확인
↓
API 허용
앞서 학습한 RBAC가 API Server 보안과 연결됩니다.
Kubernetes Admission Controller
Admission Controller는 요청을 최종 검증합니다.
흐름:
Request
↓
Authentication
↓
Authorization
↓
Admission Controller
↓
etcd 저장
추가 검사를 수행합니다.
Kubernetes Admission Controller 종류
대표 기능:
| Controller | 역할 |
|---|---|
| NamespaceLifecycle | Namespace 관리 |
| ResourceQuota | Resource 제한 |
| PodSecurity | Pod 보안 검사 |
| Mutating | 요청 변경 |
| Validating | 검증 |
Enterprise 환경에서 중요합니다.
Kubernetes API Server 통신 흐름
Deployment 생성 예:
사용자 요청
↓
API Server
↓
Authentication
↓
Authorization
↓
Admission Controller
↓
etcd 저장
↓
Deployment Controller 감지
↓
ReplicaSet 생성
↓
Pod 생성
Kubernetes 내부 동작의 시작점입니다.
Kubernetes API Server와 kubelet 관계
kubelet도 API Server와 통신합니다.
흐름:
API Server
↓
kubelet
↓
Container Runtime
↓
Container 실행
kubelet은 Node 상태와 Pod 상태를 보고합니다.
Kubernetes API Server High Availability
Production 환경에서는 API Server도 여러 개 구성합니다.
구조:
Load Balancer
↓
API Server 1
API Server 2
API Server 3
↓
etcd Cluster
하나의 API Server 장애에도 서비스를 유지할 수 있습니다.
Kubernetes API Server 장애 분석
API Server 문제가 발생하면 대부분 Cluster 전체 영향이 발생합니다.
확인:
API Server 상태:
kubectl get pods -n kube-system
Log 확인:
kubectl logs kube-apiserver-pod -n kube-system
확인 항목:
- etcd 연결
- Certificate
- Network
- Resource
Kubernetes API Server Certificate 관리
API Server는 TLS 기반 통신을 사용합니다.
관리 대상:
- Server Certificate
- Client Certificate
- CA Certificate
Certificate 만료는 대표적인 운영 장애 원인입니다.
Kubernetes API Server Monitoring
운영 환경에서는 API Server Metric을 확인합니다.
주요 Metric:
- Request Count
- Request Latency
- Error Rate
- API Availability
Prometheus와 연결하여 관리합니다.
Kubernetes API Server 보안 운영
보안 관리:
- TLS 적용
- RBAC 최소 권한
- API 접근 제한
- Audit Logging
- Authentication 관리
API Server 보호는 Cluster 보안의 핵심입니다.
Kubernetes API Server와 Audit Logging
Audit Log는 API 요청 기록입니다.
기록:
- 누가 요청했는가
- 언제 요청했는가
- 어떤 작업을 했는가
보안 분석과 감사에 활용됩니다.
Kubernetes API Server 운영 전략
Production 환경:
High Availability 구성
↓
Certificate 관리
↓
RBAC 적용
↓
Audit Log 활성화
↓
Monitoring 구성
안정적인 Control Plane 운영이 가능합니다.
Kubernetes API Server 장점
| 장점 | 설명 |
|---|---|
| 중앙 통신 | Component 연결 |
| 보안 관리 | 인증·권한 처리 |
| 상태 관리 | etcd 연동 |
| 확장성 | Cluster 운영 지원 |
API Server는 Kubernetes의 핵심 Gateway입니다.
자주 묻는 질문
Kubernetes Component는 왜 API Server를 거치나요?
직접 통신하면 상태 관리와 보안이 복잡해지기 때문에 중앙 API Server 구조를 사용합니다.
API Server가 장애 나면 Container도 모두 종료되나요?
이미 실행 중인 Container는 유지될 수 있지만 새로운 변경과 관리 작업은 어려워집니다.
API Server는 몇 개 구성해야 하나요?
개발 환경은 1개도 가능하지만 Production 환경은 보통 여러 개 구성합니다.
마무리
Kubernetes API Server는 Cluster의 모든 요청을 처리하는 Control Plane 핵심 Component입니다.
| 구성 요소 | 역할 |
|---|---|
| Authentication | 사용자 확인 |
| Authorization | 권한 확인 |
| Admission Controller | 검증 |
| etcd | 상태 저장 |
API Server 구조를 이해하면 Kubernetes Architecture, Security, 운영 장애 분석까지 연결해서 이해할 수 있습니다.
다음 글에서는 Kubernetes Node에서 Container 실행을 담당하는 Kubernetes kubelet 완벽 가이드! Worker Node Agent와 Container 실행 구조 이해하기를 진행하겠습니다.