2026년 9월 17일 목요일

정보관리기술사 3일차

1. Kubernetes의 정의
- 다수의 Container 를 Orchestration하여 운영 관리, 배포, 확장, 장애 복구를 자동화 하기 위해 만들어진 Platform
2. Kubernetes가 필요한 이유
- 다수의 Container 관리 함에 있어서 정해진 설정을 기반으로 자동화 하여 관리, 배포, 장애 복구 등을 위해 필요하다.
3. Kubernetes 주요 구성요소
- K8S를 Control Plane 영역으로 API Server, etcd, Controller, scheduler 가 있으며 API Server의 경우 K8S의 명령어를 수행하게 되며, etcd에 container를 운영하게 될 설정 값들을 보관하고,  Controller를 통해서 Current State를 비교하여 Desired State 상태로 유지하며, scheduler를 통해 어떤 Wokrer Node에 배치 할 지 정하게 된다. Controller를 통해 실제 Pod 운영을 위한 자동화 업무를 수행하게 된다. Worker Node에서는 kubelet 을 통해 API Server에서 Pod 관련 명령을 전달 받아 Pod를 관리하고 Container runtime이 Contrainer를 실행하게 된다.
4. Container/Pod 배포
- API Server 를 통해 Pod 생성 명령이 전달이 되면 etcd 에 관련된 state를 기록하여 저장 후 scheduler를 통해 Worker Node 로 생성이 될지 지정되며 kubelet을 통해 수령된 명령을 container runtime을 통해 Pod를 생성하게 된다. 
5. 확장(Scaling)
- 장애나 성능관련 Auto Scaling 을 통해 Pod의 성능이 떨어 질 경우 Sacle Out 진행하여 pod를 증설하여 업무 분담
6. 장애복구
- pod 가 죽는 장애가 발생 시 Self Healing 을 통해 가지고 있는 image 를 가지고 자동으로 pod 서비스를 기동
7. Service / Network
- Pod가 동작 시 각각의 Pod는 pod의 서비스 포트를 가지고 있으며 클라이언트가 해당 Pod의 Container 에서 수행되는 Application을 이용하기 위해서는 Service를 통해 Pod로 접근하게 되며 http/https 통신의 경우 Ingress 를 통해 라우팅 되어 Pod에 전달되어 진다.
8. 결론
- application 서비스의 자동화된 운영 관리, 배포, 장애 복구 등을 위해서 k8s를 사용하게 된다. 이러한 자동화된 환경을 통해 장애 포인트에 대한 즉각 대응하여 원활하고 안정화된 서비스를 제공하는 인프라 환경을 조성 할 수 있게 된다.

배경 지식 부족으로 현재로 종료하고 추후 다른 Part로 따로 나눠 보완 예정.

댓글 없음:

댓글 쓰기