Kubernetes Cluster는 다양한 Component가 서로 연결되어 동작합니다.
사용자가 명령을 실행하거나 Controller, Scheduler, Node가 상태 정보를 주고받기 위해서는 모든 통신을 관리하는 중앙 관리 계층이 필요합니다.
Kubernetes에서는 API Server가 이러한 역할을 담당합니다.
Kubernetes API Server는 Control Plane의 핵심 Component이며 Kubernetes 모든 요청과 Resource 관리를 처리하는 Gateway 역할을 합니다.
| 구성 요소 | 역할 |
|---|---|
| API Server | Kubernetes 요청 처리 |
| etcd | Cluster 상태 저장 |
| Scheduler | Pod 배치 결정 |
| Controller Manager | 상태 조정 |
| Kubelet | Node Container 관리 |
API Server 구조를 이해하면 Kubernetes 내부 Component가 어떻게 통신하고 Cluster 상태를 관리하는지 알 수 있습니다.
Kubernetes API Server란 무엇인가?
Kubernetes API Server는 Kubernetes Control Plane에서 모든 요청을 처리하는 중앙 API Component입니다.
kubectl 명령, Controller, Scheduler, Kubelet 등 모든 Component는 API Server를 통해 Kubernetes Resource를 관리합니다.
예:
사용자 요청:
Pod 생성 요청
↓
API Server 처리
↓
etcd 저장
↓
Scheduler 배치
↓
Kubelet 실행
이처럼 Kubernetes의 모든 작업은 API Server를 중심으로 이루어집니다.
Kubernetes API Server가 필요한 이유
Kubernetes는 여러 Component가 독립적으로 동작하는 구조입니다.
각 Component가 직접 통신하면 구조가 복잡해지고 관리가 어려워집니다.
API Server를 중심으로 통신하면:
| 장점 | 설명 |
|---|---|
| 중앙 관리 | 모든 요청 통합 |
| 보안 강화 | 인증 및 권한 적용 |
| 일관성 유지 | API 기반 상태 관리 |
| 확장성 | Component 추가 용이 |
API Server는 Kubernetes Architecture의 중심 Gateway 역할을 합니다.
Kubernetes API Server 동작 구조
API Server는 요청을 받아 검증하고 필요한 작업을 수행합니다.
구조:
| 구성 요소 | 역할 |
|---|---|
| Client | 요청 전달 |
| API Server | 요청 처리 |
| etcd | 상태 저장 |
| Controller | 상태 조정 |
| Scheduler | 배치 처리 |
동작 과정:
| 단계 | 내용 |
|---|---|
| 1단계 | Client 요청 전달 |
| 2단계 | Authentication 확인 |
| 3단계 | Authorization 확인 |
| 4단계 | Admission Control 실행 |
| 5단계 | etcd 저장 또는 조회 |
이 과정을 통해 Kubernetes Resource가 안전하게 관리됩니다.
Kubernetes API Server 인증(Authentication)
API Server는 요청자가 누구인지 확인하는 인증 과정을 수행합니다.
지원 방식:
| 방식 | 설명 |
|---|---|
| Certificate | 인증서 기반 |
| Token | Token 인증 |
| ServiceAccount | Application 인증 |
| OIDC | 외부 Identity 연동 |
인증 과정은 Kubernetes 보안의 첫 번째 단계입니다.
Kubernetes API Server 권한 관리(Authorization)
인증된 사용자가 어떤 작업을 수행할 수 있는지 확인하는 과정입니다.
대표 방식:
| 방식 | 설명 |
|---|---|
| RBAC | Role 기반 권한 관리 |
| ABAC | Attribute 기반 관리 |
| Node Authorization | Node 권한 관리 |
Production 환경에서는 RBAC 방식이 가장 많이 사용됩니다.
Kubernetes Admission Controller란?
Admission Controller는 API Server 요청이 처리되기 전에 추가 검증과 변경을 수행하는 기능입니다.
역할:
| 기능 | 설명 |
|---|---|
| 검증 | 정책 위반 확인 |
| 변경 | Resource 설정 수정 |
| 보안 적용 | Policy 적용 |
예:
Pod 생성 요청
↓
Admission Controller 확인
↓
보안 정책 적용
↓
Pod 생성
Kubernetes 보안과 정책 관리에서 중요한 역할을 합니다.
Kubernetes API Server와 etcd 관계
API Server는 Kubernetes와 etcd 사이의 유일한 통신 창구입니다.
구조:
kubectl
↓
API Server
↓
etcd
Component는 직접 etcd에 접근하지 않습니다.
장점:
| 효과 | 설명 |
|---|---|
| 보안 향상 | 직접 접근 차단 |
| 권한 적용 | RBAC 사용 가능 |
| 데이터 일관성 | 중앙 관리 가능 |
Kubernetes API Server와 Scheduler 관계
Scheduler는 Pod 배치를 담당하지만 직접 사용자가 요청하지 않습니다.
API Server를 통해 Pending 상태의 Pod 정보를 확인합니다.
동작:
Pod 생성 요청
↓
API Server 저장
↓
Scheduler 감지
↓
Node 선택
↓
Binding 수행
Scheduler와 API Server는 Kubernetes 배포 과정에서 밀접하게 연결됩니다.
Kubernetes API Server와 Controller Manager 관계
Controller Manager 역시 API Server를 통해 Resource 상태를 확인합니다.
동작:
현재 상태 확인
↓
Desired State 비교
↓
차이 발견
↓
API Server 통해 변경 요청
Controller는 API Server를 통해 Cluster 상태를 지속적으로 조정합니다.
Kubernetes API Server와 Kubelet 관계
Kubelet은 각 Node에서 실행되는 Agent입니다.
Node 상태 보고와 Container 실행 관리를 API Server와 통신하며 수행합니다.
구조:
API Server
↓
Kubelet
↓
Container Runtime
↓
Container
Kubelet은 Cluster 상태 정보를 API Server에 전달합니다.
Kubernetes API Server 주요 기능
API Server는 다양한 기능을 제공합니다.
| 기능 | 설명 |
|---|---|
| Resource 관리 | Pod, Service 생성 및 수정 |
| API 제공 | Component 통신 |
| 인증 | 사용자 확인 |
| 권한 관리 | 접근 제어 |
| Validation | 요청 검증 |
Kubernetes 운영에서 가장 중요한 Control Plane Component입니다.
Kubernetes API Version 관리
Kubernetes API는 Version 기반으로 Resource를 관리합니다.
예:
| Version | 특징 |
|---|---|
| v1 | 안정 API |
| beta | 테스트 단계 |
| alpha | 초기 개발 단계 |
API Version 관리는 Kubernetes 호환성과 확장성을 유지하는 중요한 요소입니다.
Kubernetes API Server 장애 영향
API Server가 중단되면 Kubernetes 관리 기능에 영향을 줍니다.
영향:
| 기능 | 영향 |
|---|---|
| kubectl 명령 | 사용 불가 |
| 새 Pod 생성 | 불가능 |
| 상태 변경 | 제한 |
| 기존 Container | 일정 시간 유지 가능 |
Production 환경에서는 API Server High Availability 구성이 중요합니다.
Kubernetes API Server 고가용성 구성
대규모 환경에서는 여러 API Server Instance를 구성합니다.
구조:
| 구성 요소 | 역할 |
|---|---|
| Load Balancer | 요청 분산 |
| API Server 1 | 요청 처리 |
| API Server 2 | 요청 처리 |
| API Server 3 | 요청 처리 |
이를 통해 Control Plane 장애 상황에서도 안정적인 운영이 가능합니다.
Kubernetes API Server 보안 관리
API Server는 모든 요청이 통과하는 지점이기 때문에 보안이 중요합니다.
관리 항목:
| 항목 | 설명 |
|---|---|
| TLS | 통신 암호화 |
| RBAC | 권한 제한 |
| Audit Log | 접근 기록 |
| Network 제한 | 접근 보호 |
안전한 API Server 운영은 Kubernetes 전체 보안과 연결됩니다.
Kubernetes API Server 장점
| 장점 | 설명 |
|---|---|
| 중앙 관리 | 모든 요청 통합 |
| 보안 강화 | 인증과 권한 관리 |
| 확장성 | Component 연동 가능 |
| 일관성 | Cluster 상태 관리 |
API Server는 Kubernetes Architecture의 핵심 통신 계층입니다.
자주 묻는 질문
Kubernetes API Server는 무엇을 담당하나요?
Kubernetes 모든 요청을 처리하고 Resource 상태를 관리하는 Control Plane 핵심 Component입니다.
Component가 직접 etcd에 접근하지 않는 이유는 무엇인가요?
API Server를 통해 접근하면 인증, 권한 관리, 데이터 일관성을 유지할 수 있기 때문입니다.
API Server가 중단되면 Container도 모두 종료되나요?
아닙니다.
기존 실행 중인 Container는 계속 동작할 수 있지만 Kubernetes 관리 기능은 제한됩니다.
마무리
Kubernetes API Server는 Control Plane의 중심에서 모든 Component와 사용자 요청을 연결하는 핵심 Component입니다.
| 구성 요소 | 역할 |
|---|---|
| API Server | 요청 처리 및 통신 관리 |
| etcd | 상태 데이터 저장 |
| Controller | 상태 조정 |
| Scheduler | Pod 배치 |
| Kubelet | Container 실행 |
API Server 구조를 이해하면 Kubernetes Cluster가 어떻게 통신하고 Resource를 관리하는지 이해할 수 있습니다.
다음 글에서는 Kubernetes Node 내부 동작을 담당하는 Kubernetes Kubelet 완벽 가이드! Node Agent와 Container 실행 관리 구조 이해하기를 알아보겠습니다.