728x90
강의 요약: 쿠버네티스의 kube-apiserver와 주요 구성 요소
kube-apiserver 개요
- kube-apiserver는 쿠버네티스 클러스터의 중앙 관리 구성 요소로, 클러스터 내 모든 변경 요청과 데이터 조회의 중심.
- 역할:
- 요청 인증 및 유효성 검증.
- Etcd 데이터 저장소와 상호작용해 데이터를 검색/업데이트.
- 스케줄러, kube-controller-manager, kubelet 등 다른 구성 요소와 통신.
kube-apiserver와 클러스터 통신 흐름
- 요청 처리
- kubectl 명령 또는 API 호출로 요청이 전달됨.
- 인증 및 유효성 검증 후 Etcd에서 데이터 업데이트.
- 스케줄러 작업
- 스케줄러는 새로 생성된 포드를 감지하고, 적절한 노드에 할당.
- kube-apiserver와 통신하여 클러스터 상태 업데이트.
- kubelet 작업
- 작업자 노드에서 kubelet이 포드를 생성하고 컨테이너를 배포.
- 완료된 상태를 kube-apiserver로 다시 보고.
- Etcd와 동기화
- 모든 변경 사항은 최종적으로 Etcd 데이터 저장소에 기록.
kube-apiserver의 주요 특징
- 클러스터에서 유일하게 Etcd와 직접 상호작용.
- 다른 구성 요소(스케줄러, kube-controller-manager, kubelet)는 API 서버를 통해 간접적으로 Etcd와 상호작용.
kube-apiserver 설정
- kubeadm을 이용한 설정
- kube-system 네임스페이스에서 포드로 배포.
- 설정 파일 위치:
- /etc/kubernetes/manifests/kube-apiserver.yaml
- 수동 설정 (From Scratch)
- kubernetes 릴리스 페이지에서 바이너리 다운로드.
- 마스터 노드에서 서비스로 실행 및 구성.
- 설정 파일 위치:
- /etc/systemd/system/kube-apiserver.service
- 프로세스 확인
- 마스터 노드에서 실행 중인 kube-apiserver 프로세스를 나열해 옵션 검사:
bash코드 복사ps aux | grep kube-apiserver
- 마스터 노드에서 실행 중인 kube-apiserver 프로세스를 나열해 옵션 검사:
kube-apiserver와 인증
- kube-apiserver는 SSL/TLS 인증서를 사용해 구성 요소 간 연결 보안 유지.
- 인증서 관련 설정은 강의 후반부에서 다룰 예정
Kube Controller Manager와 컨트롤러의 역할
Kube Controller Manager 개요
- Kube Controller Manager는 쿠버네티스의 다양한 컨트롤러를 관리하는 중앙 구성 요소.
- 역할:
- 시스템 상태를 지속적으로 모니터링.
- 원하는 상태를 유지하도록 필요한 조치를 수행.
- 컨트롤러는 쿠버네티스의 "뇌"로서, 시스템 내 구성 요소를 관리하고 조정.
컨트롤러의 주요 예
- 노드 컨트롤러
- 노드의 상태를 모니터링.
- 일정 시간 동안 노드의 상태가 응답하지 않으면:
- 해당 노드의 상태를 "접속 불가"로 표시.
- 해당 노드의 포드를 제거하고 다른 노드로 재배치.
- 복제 컨트롤러
- 복제본 세트의 상태를 모니터링.
- 원하는 수의 포드가 항상 사용 가능하도록 관리.
- 포드가 종료되면 새로운 포드를 생성.
컨트롤러의 역할
- 배포, 서비스, 네임스페이스, 영구 볼륨 등 쿠버네티스의 다양한 기능을 구현.
- 각 컨트롤러는 자신의 역할에 따라 클러스터를 모니터링하고 관리.
Kube Controller Manager 설치 및 설정
- 설치 방법
- 쿠버네티스 릴리스 페이지에서 Kube Controller Manager 바이너리를 다운로드.
- 마스터 노드에서 서비스로 실행.
- 실행 시 사용자 지정 옵션 제공.
- 설정 파일 위치
- kubeadm으로 설정:
- /etc/kubernetes/manifests/kube-controller-manager.yaml
- 수동 설정:
- /etc/systemd/system/kube-controller-manager.service
- kubeadm으로 설정:
- 프로세스 확인
- 실행 중인 프로세스를 나열하여 Kube Controller Manager 옵션 확인:
bash코드 복사ps aux | grep kube-controller-manager
- 실행 중인 프로세스를 나열하여 Kube Controller Manager 옵션 확인:
컨트롤러 설정 옵션
- 기본 옵션:
- 노드 모니터 주기, 유예 기간, 퇴거 기간 등.
- 활성화 옵션:
- 특정 컨트롤러를 활성화/비활성화 가능.
- 기본값으로 모든 컨트롤러가 활성화.
Kube Controller Manager의 위치
- kubeadm으로 설정:
- kube-system 네임스페이스에 POD로 배포.
- 수동 설정:
- 서비스 디렉터리에서 확인 가능.
요약
- Kube Controller Manager는 여러 컨트롤러를 중앙에서 관리하며, 클러스터의 상태를 유지하고 조정.
- 다양한 컨트롤러를 통해 쿠버네티스의 모든 기능이 구현됨.
- 설정 및 옵션은 클러스터 관리 방식에 따라 다름.
728x90
'쿠버네티스' 카테고리의 다른 글
Kubernetes RBAC(Role-Based Access Control) 정리 (0) | 2024.12.22 |
---|---|
[쿠버네티스] 아키텍쳐 정리 및 간단한 실습 정리 (4) | 2024.12.15 |
[쿠버네티스] ETCD 관련 정리 (0) | 2024.12.11 |
쿠버네티스 개념 정리 - 1 (0) | 2024.12.07 |
쿠버네티스 실습을 위한 minikube 설치 (0) | 2024.10.27 |