2026년 9월 18일 금요일

정보관리기술사 4일차


< 3일차 보완 >

1. Kubernetes의 정의
 - 다수의 Container를 자동화 하여 운영 배포, 관리, 장애 대응 하기 위해 만들어진 플랫폼이다.
 2. Kubernetes가 필요한 이유
 - 다수의 Container를 사람이 관리하기 위해서는 배포, 운영 관리, 장애 대응 등 복잡한 운영 관리를 위해 다수의 인적자원이 필요로 한다 이러한 운영 관리의 영역을 자동화하여 일관된 상태로 운영하기 위해 Kubernetes가 필요하다. 
 3. Kubernetes 주요 구성요소
 - Control Plane
 Pod의 Current Statue를 체크하여 Disierd State로 유지하도록 관리한다
  · API Server
 Kubernetes API에 대한 중앙 진입점으로, 사용자의 요청을 수신하고 각 구성 요소 간 API 통신을 중계한다.
 · etcd
 Kubernetes Cluster의 Object 및 Desired State 등의 상태 정보를 저장하는 분산 Key-Value Store
 · Scheduler
 생성될 Pod 의 요구 사항과 Node의 상태 등을 고려하여 Pod가 배치 될 Worker Node를 선정
 · Controller / Controller Manager 
 Controller는 Desired State와 Current State 간 차이를 지속적으로 감시하고 필요한 조치를 수행하여 Desired State를 유지 한다 Controller Manager는 Controll Plane 구성 요소 중 하나로 여러 Controller를 실행 관리 한다.
 - Worker Node
 Pod가 실행되어 동작하는 영역
 · kubelet
 Pod의 생명 주기를 관리하며 API Server에서 전달된 명령을 수령
 · Container Runtime 
 Container를 API Server의 명령에 맞춰 실행
 4. Application 배포 및 실행 과정
 - API Server로 Pod 에 대한 명령이 인입되어 etcd 에 해당 Pod의 Diesired State를 기록하여 보관하고 Scheduler가 해당 Container가 어떤 Worker Node에 배치 될지 결정하며, Controller를 통해 해당 Container의 Desiered State 상태로 유지되도록 조정되도록 운영이 된다. Worker Node 에서는 Kubelet이 Pod의 생명 주기를 관리하고 Container Runtime이 Pod의 명세를 확인하여 정의된 대로 Container 서비스를 생성, 실행 하게 된다.
 5. Desired State와 Reconciliation
 - Kubernetes에서 선언한 Application 및 Cluster Resource의 목표 상태를 Desired State 라 하며 Controller는 Current State를 지속적으로 체크하여 Desired State 와 상이할 경우 Desired State와 동일하게 맞추기 위해서 필요한 Pod의 생성, 삭제, 변경 등의 조정하게 되는 데 그 행위가  Reconciliation(조정) 이다.
 6. Scaling
 - HPA는 CPU / Memory 등의 Metric을 기반으로 Pod의 Replica 수를 자동으로 증감 시켜 Scale-out / Scale-in 을 수행한다
 7. Self-Healing
 - Pod의 장애나 리소스의 부하로 인해 Desired Stated와 Current State 간 차이가 발생하면 Controller가 이를 감지하여 Pod를 재생성 등의 조치를 수행하여 서비스의 연속성을 확보하는 행위를 말한다.
 8. Service / Network
 - Pod의 생성 시 Pod 의 IP는 고정 IP가 아니다 하지만 서비스는 안정적인 지점을 바라보고 서비스를 하기 때문에 Pod와 요청 클라이언트 구간에서 변경되는 Pod IP를 추상화하여 안정적인 접근점을 제공하는 역할을 수행하며 http, https 등의 외부 호출에 대한 라우팅 역할을 하는 Ingress도 있다.
 9. 결론
 - 시스템의 발전으로 운영자가 다수의 Container의 관리가 필요하여 Kubernetes Platform이 등장하게 되었다. 이러한 Kubernetes 를 통해 다수의 Container를 운영 자동화하기 위해 Desired State를 선언하고 Current State와의 차이를 지속적으로 Reconciliation(조정)하여 Application의 배포 확장 장애 복구를 자동화 하는 Container Orchestration Platform이다.
 이를 통해 대규모의 Container 운영 환경에서 운영 복잡성을 감소시키기고 Self-Healing 을 통한 자동화 복구 기반 운영으로 서비스의 안정성을 높이고 운영 효율성을 높일 수 있다 향후 DevOps, CI/CD, Cloud Native 환경과 연계하여 Application 개발부터 배포 운영까지 자동화하는 기반 기술로 활용이 가능하다.