최신판 |
당신의 편집 |
35번째 줄: |
35번째 줄: |
|
| |
|
| ===kube-scheduler=== | | ===kube-scheduler=== |
| 노드가 할당되지 않은 새로 생성된 [[k8s 파드|파드]]를 감시하고 실행할 [[k8s 노드|노드]]를 선택하는 컨트롤 플레인 컴포넌트입니다. | | 노드가 할당되지 않은 새로 생성된 파드를 감시하고 실행할 노드를 선택하는 컨트롤 플레인 컴포넌트입니다. |
|
| |
|
| 스케줄링 결정에 고려되는 요소에는 개별 및 집합 자원 요구사항, 하드웨어/소프트웨어/정책 제약조건, 어피니티 및 안티-어피니티 사양, 데이터 로컬리티, 워크로드 간 간섭, 데드라인이 포함됩니다. | | 스케줄링 결정에 고려되는 요소에는 개별 및 집합 자원 요구사항, 하드웨어/소프트웨어/정책 제약조건, 어피니티 및 안티-어피니티 사양, 데이터 로컬리티, 워크로드 간 간섭, 데드라인이 포함됩니다. |
|
| |
|
| ===[[kube-controller-manager]]=== | | ===kube-controller-manager=== |
| 컨트롤 플레인 컴포넌트로, [[k8s 컨트롤러|컨트롤러]] 프로세스를 실행합니다.
| | ===cloud-controller-manager=== |
| | |
| 논리적으로는 각 컨트롤러가 별도의 프로세스이지만, 복잡성을 줄이기 위해 모든 컨트롤러를 단일 바이너리로 컴파일하여 단일 프로세스로 실행합니다.
| |
| | |
| 다양한 유형의 컨트롤러가 있습니다. 그 예는 다음과 같습니다:
| |
| * Node 컨트롤러: 노드가 다운되었을 때 이를 감지하고 대응하는 역할을 합니다.
| |
| * Job 컨트롤러: 일회성 작업을 나타내는 Job 객체를 감시하고, 해당 작업을 완료하기 위해 Pod를 생성합니다.
| |
| * EndpointSlice 컨트롤러: EndpointSlice 객체를 채워서 서비스와 Pod 간의 연결을 제공합니다.
| |
| * ServiceAccount 컨트롤러: 새로운 네임스페이스에 대한 기본 ServiceAccount를 생성합니다.
| |
| 위 목록은 전체 목록이 아닙니다.
| |
| | |
| ===[[cloud-controller-manager]]=== | |
| 클라우드 특정 제어 로직을 포함하는 [[Kubernetes 컨트롤 플레인]] 컴포넌트입니다. cloud-controller-manager를 사용하면 클러스터를 클라우드 제공자의 API에 연결할 수 있으며, 클라우드 플랫폼과 상호작용하는 컴포넌트를 클러스터와 상호작용하는 컴포넌트와 분리합니다. cloud-controller-manager는 클라우드 제공자에 특정한 컨트롤러만 실행합니다. Kubernetes를 온프레미스에서 실행하거나 개인 PC 내의 학습 환경에서 실행하는 경우 클러스터에는 cloud-controller-manager가 없습니다.
| |
| | |
| kube-controller-manager와 마찬가지로 cloud-controller-manager는 여러 논리적으로 독립적인 제어 루프를 단일 바이너리로 결합하여 단일 프로세스로 실행합니다. 성능 향상 또는 장애 허용을 위해 수평으로 확장(여러 복사본 실행)할 수 있습니다.
| |
| | |
| 다음 컨트롤러는 클라우드 제공자 의존성을 가질 수 있습니다:
| |
| * 노드 컨트롤러: 클라우드 제공자를 확인하여 노드가 응답을 중지한 후 클라우드에서 삭제되었는지 여부를 결정합니다.
| |
| * 라우트 컨트롤러: 기본 클라우드 인프라에서 라우트를 셋업합니다.
| |
| * 서비스 컨트롤러: 클라우드 제공자의 로드 밸런서를 생성, 업데이트, 삭제합니다.
| |
|
| |
|
| ==노드 컴포넌트== | | ==노드 컴포넌트== |