|
4 | 4 | title: 쿠버네티스 컴포넌트
|
5 | 5 | content_type: concept
|
6 | 6 | description: >
|
7 |
| - 쿠버네티스 클러스터는 컴퓨터 집합인 노드 컴포넌트와 컨트롤 플레인 |
8 |
| - 컴포넌트로 구성된다. |
9 |
| -weight: 30 |
| 7 | + 쿠버네티스 클러스터를 구성하는 핵심 컴포넌트 개요. |
| 8 | +weight: 10 |
10 | 9 | card:
|
| 10 | + title: 클러스터 컴포넌트 |
11 | 11 | name: concepts
|
12 | 12 | weight: 20
|
13 | 13 | ---
|
14 | 14 |
|
15 | 15 | <!-- overview -->
|
16 |
| -쿠버네티스를 배포하면 클러스터를 얻는다. |
17 |
| -{{< glossary_definition term_id="cluster" length="all" prepend="쿠버네티스 클러스터는">}} |
18 | 16 |
|
19 |
| -이 문서는 완전히 작동하는 쿠버네티스 클러스터를 갖기 위해 필요한 |
20 |
| -다양한 컴포넌트들에 대해 요약하고 정리한다. |
| 17 | +이 페이지는 쿠버네티스 클러스터를 구성하는 필수 컴포넌트에 대한 상위 수준의 개요를 제공한다. |
21 | 18 |
|
22 |
| -{{< figure src="/images/docs/components-of-kubernetes.svg" alt="쿠버네티스 구성 요소" caption="쿠버네티스 클러스터 구성 요소" class="diagram-large" >}} |
| 19 | +{{< figure src="/images/docs/components-of-kubernetes.svg" alt="쿠버네티스 컴포넌트" caption="쿠버네티스 클러스터 컴포넌트" class="diagram-large" clicktozoom="true" >}} |
23 | 20 |
|
24 | 21 | <!-- body -->
|
25 |
| -## 컨트롤 플레인 컴포넌트 |
26 | 22 |
|
27 |
| -컨트롤 플레인 컴포넌트는 클러스터에 관한 전반적인 결정(예를 들어, 스케줄링)을 수행하고 클러스터 이벤트(예를 들어, 디플로이먼트의 `replicas` 필드에 대한 요구 조건이 충족되지 않을 경우 새로운 {{< glossary_tooltip text="파드" term_id="pod">}}를 구동시키는 것)를 감지하고 반응한다. |
| 23 | +## 핵심 컴포넌트 |
28 | 24 |
|
29 |
| -컨트롤 플레인 컴포넌트는 클러스터 내 어떠한 머신에서든지 동작할 수 있다. 그러나 |
30 |
| -간결성을 위하여, 구성 스크립트는 보통 동일 머신 상에 모든 컨트롤 플레인 컴포넌트를 구동시키고, |
31 |
| -사용자 컨테이너는 해당 머신 상에 동작시키지 않는다. 여러 머신에서 |
32 |
| -실행되는 컨트롤 플레인 설정의 예제를 보려면 |
33 |
| -[kubeadm을 사용하여 고가용성 클러스터 만들기](/docs/setup/production-environment/tools/kubeadm/high-availability/)를 확인해본다. |
| 25 | +쿠버네티스 클러스터는 컨트롤 플레인과 하나 이상의 워커 노드로 구성된다. |
| 26 | +다음은 주요 컴포넌트에 대한 간략한 개요이다. |
34 | 27 |
|
35 |
| -### kube-apiserver |
| 28 | +### 컨트롤 플레인 컴포넌트 |
36 | 29 |
|
37 |
| -{{< glossary_definition term_id="kube-apiserver" length="all" >}} |
| 30 | +클러스터 전체 상태를 관리한다. |
38 | 31 |
|
39 |
| -### etcd |
| 32 | +[kube-apiserver](/docs/concepts/architecture/#kube-apiserver) |
| 33 | +: 쿠버네티스 HTTP API를 노출하는 핵심 서버 컴포넌트이다. |
40 | 34 |
|
41 |
| -{{< glossary_definition term_id="etcd" length="all" >}} |
| 35 | +[etcd](/docs/concepts/architecture/#etcd) |
| 36 | +: 모든 API 서버 데이터를 위한 일관성과 고가용성을 갖춘 키-값 저장소이다. |
42 | 37 |
|
43 |
| -### kube-scheduler |
| 38 | +[kube-scheduler](/docs/concepts/architecture/#kube-scheduler) |
| 39 | +: 아직 노드에 할당되지 않은 파드를 찾아 적절한 노드에 할당한다. |
44 | 40 |
|
45 |
| -{{< glossary_definition term_id="kube-scheduler" length="all" >}} |
| 41 | +[kube-controller-manager](/docs/concepts/architecture/#kube-controller-manager) |
| 42 | +: {{< glossary_tooltip text="컨트롤러" term_id="controller" >}}를 실행하여 쿠버네티스 API 동작을 구현한다. |
46 | 43 |
|
47 |
| -### kube-controller-manager |
48 |
| - |
49 |
| -{{< glossary_definition term_id="kube-controller-manager" length="all" >}} |
50 |
| - |
51 |
| -이들 컨트롤러는 다음을 포함한다. |
52 |
| - |
53 |
| - * 노드 컨트롤러: 노드가 다운되었을 때 통지와 대응에 관한 책임을 가진다. |
54 |
| - * 잡 컨트롤러: 일회성 작업을 나타내는 잡 오브젝트를 감시한 다음, 해당 작업을 |
55 |
| - 완료할 때까지 동작하는 파드를 생성한다. |
56 |
| - * 엔드포인트슬라이스 컨트롤러: (서비스와 파드 사이의 연결고리를 제공하기 위해) 엔드포인트슬라이스(EndpointSlice) 오브젝트를 채운다 |
57 |
| - * 서비스어카운트 컨트롤러: 새로운 네임스페이스에 대한 기본 서비스어카운트(ServiceAccount)를 생성한다. |
58 |
| - |
59 |
| -### cloud-controller-manager |
60 |
| - |
61 |
| -{{< glossary_definition term_id="cloud-controller-manager" length="short" >}} |
62 |
| - |
63 |
| -cloud-controller-manager는 클라우드 제공자 전용 컨트롤러만 실행한다. |
64 |
| -자신의 사내 또는 PC 내부의 학습 환경에서 쿠버네티스를 실행 중인 경우 |
65 |
| -클러스터에는 클라우드 컨트롤러 매니저가 없다. |
66 |
| - |
67 |
| -kube-controller-manager와 마찬가지로 cloud-controller-manager는 논리적으로 |
68 |
| -독립적인 여러 컨트롤 루프를 단일 프로세스로 실행하는 단일 바이너리로 결합한다. |
69 |
| -수평으로 확장(두 개 이상의 복제 실행)해서 성능을 향상시키거나 장애를 견딜 수 있다. |
70 |
| - |
71 |
| -다음 컨트롤러들은 클라우드 제공 사업자의 의존성을 가질 수 있다. |
72 |
| - |
73 |
| - * 노드 컨트롤러: 노드가 응답을 멈춘 후 클라우드 상에서 삭제되었는지 판별하기 위해 클라우드 제공 사업자에게 확인하는 것 |
74 |
| - * 라우트 컨트롤러: 기본 클라우드 인프라에 경로를 구성하는 것 |
75 |
| - * 서비스 컨트롤러: 클라우드 제공 사업자 로드밸런서를 생성, 업데이트 그리고 삭제하는 것 |
| 44 | +[cloud-controller-manager](/docs/concepts/architecture/#cloud-controller-manager) (선택 사항) |
| 45 | +: 기본 클라우드 공급자와 통합한다. |
76 | 46 |
|
77 | 47 | ## 노드 컴포넌트
|
78 | 48 |
|
79 |
| -노드 컴포넌트는 동작 중인 파드를 유지시키고 쿠버네티스 런타임 환경을 제공하며, 모든 노드 상에서 동작한다. |
| 49 | +모든 노드에서 실행되며, 실행 중인 파드를 유지하고 쿠버네티스 런타임 환경을 제공한다. |
80 | 50 |
|
81 |
| -### kubelet |
| 51 | +[kubelet](/docs/concepts/architecture/#kubelet) |
| 52 | +: 파드와 그 안의 컨트롤러가 실행 중임을 보장한다. |
82 | 53 |
|
83 |
| -{{< glossary_definition term_id="kubelet" length="all" >}} |
| 54 | +[kube-proxy](/docs/concepts/architecture/#kube-proxy) (선택 사항) |
| 55 | +: 노드에서 네트워크 규칙을 유지하여 {{< glossary_tooltip text="서비스" term_id="service" >}}를 구현한다. |
84 | 56 |
|
85 |
| -### kube-proxy |
| 57 | +[컨테이너 런타임](/docs/concepts/architecture/#container-runtime) |
| 58 | +: 컨테이너 실행을 담당하는 소프트웨어이다. 자세한 내용은 |
| 59 | + [컨테이너 런타임](/ko/docs/setup/production-environment/container-runtimes/)을 참고한다. |
86 | 60 |
|
87 |
| -{{< glossary_definition term_id="kube-proxy" length="all" >}} |
| 61 | +{{% thirdparty-content single="true" %}} |
88 | 62 |
|
89 |
| -### 컨테이너 런타임 |
90 |
| - |
91 |
| -{{< glossary_definition term_id="container-runtime" length="all" >}} |
| 63 | +클러스터는 각 노드에 대한 추가적인 소프트웨어가 필요할 수 있다. 예를 들어, 리눅스 노드에서는 |
| 64 | +로컬 컴포넌트를 관리하기 위해 [systemd](https://systemd.io/)를 실행할 수 있다. |
92 | 65 |
|
93 | 66 | ## 애드온
|
94 | 67 |
|
95 |
| -애드온은 쿠버네티스 리소스({{< glossary_tooltip text="데몬셋" term_id="daemonset" >}}, |
96 |
| -{{< glossary_tooltip text="디플로이먼트" term_id="deployment" >}} 등)를 |
97 |
| -이용하여 클러스터 기능을 구현한다. 이들은 클러스터 단위의 기능을 제공하기 때문에 |
98 |
| -애드온에 대한 네임스페이스 리소스는 `kube-system` 네임스페이스에 속한다. |
99 |
| - |
100 |
| -선택된 일부 애드온은 아래에 설명하였고, 사용 가능한 전체 확장 애드온 리스트는 |
101 |
| -[애드온](/ko/docs/concepts/cluster-administration/addons/)을 참조한다. |
102 |
| - |
103 |
| -### DNS |
104 |
| - |
105 |
| -여타 애드온들이 절대적으로 요구되지 않지만, 많은 예시에서 필요로 하기 때문에 모든 쿠버네티스 클러스터는 [클러스터 DNS](/ko/docs/concepts/services-networking/dns-pod-service/)를 갖추어야만 한다. |
106 |
| - |
107 |
| -클러스터 DNS는 구성환경 내 다른 DNS 서버와 더불어, 쿠버네티스 서비스를 위해 DNS 레코드를 제공해주는 DNS 서버다. |
108 |
| - |
109 |
| -쿠버네티스에 의해 구동되는 컨테이너는 DNS 검색에서 이 DNS 서버를 자동으로 포함한다. |
110 |
| - |
111 |
| -### 웹 UI (대시보드) |
112 |
| - |
113 |
| -[대시보드](/ko/docs/tasks/access-application-cluster/web-ui-dashboard/)는 쿠버네티스 클러스터를 위한 범용의 웹 기반 UI다. 사용자가 클러스터 자체뿐만 아니라, 클러스터에서 동작하는 애플리케이션에 대한 관리와 문제 해결을 할 수 있도록 해준다. |
| 68 | +애드온은 쿠버네티스 기능을 확장한다. 몇 가지 중요한 예시는 다음과 같다. |
114 | 69 |
|
115 |
| -### 컨테이너 리소스 모니터링 |
| 70 | +[DNS](/docs/concepts/architecture/#dns) |
| 71 | +: 클러스터 전반의 DNS 해석을 담당한다. |
116 | 72 |
|
117 |
| -[컨테이너 리소스 모니터링](/ko/docs/tasks/debug/debug-cluster/resource-usage-monitoring/)은 |
118 |
| -중앙 데이터베이스 내의 컨테이너들에 대한 포괄적인 시계열 매트릭스를 기록하고 그 데이터를 열람하기 위한 UI를 제공해 준다. |
| 73 | +[웹 UI](/docs/concepts/architecture/#web-ui-dashboard) (대시보드) |
| 74 | +: 웹 인터페이스를 통한 클러스터 관리를 제공한다. |
119 | 75 |
|
120 |
| -### 클러스터-레벨 로깅 |
| 76 | +[컨테이너 리소스 모니터링](/docs/concepts/architecture/#container-resource-monitoring) |
| 77 | +: 컨테이너 매트릭을 수집하고 저장한다. |
121 | 78 |
|
122 |
| -[클러스터-레벨 로깅](/ko/docs/concepts/cluster-administration/logging/) 메커니즘은 |
123 |
| -검색/열람 인터페이스와 함께 중앙 로그 저장소에 컨테이너 로그를 저장하는 책임을 진다. |
| 79 | +[클러스터-레벨 로깅](/docs/concepts/architecture/#cluster-level-logging) |
| 80 | +: 컨테이너 로그를 중앙 로그 저장소에 저장한다. |
124 | 81 |
|
| 82 | +## 아키텍처 유연성 |
125 | 83 |
|
126 |
| -## {{% heading "whatsnext" %}} |
| 84 | +쿠버네티스는 이러한 컴포넌트가 배포되고 관리되는 방식에 있어 유연성을 제공한다. |
| 85 | +아키텍처는 소규모 개발 환경부터 대규모 프로덕션 개발 환경까지 |
| 86 | +다양한 요구에 맞게 조정될 수 있다. |
127 | 87 |
|
128 |
| -* [노드](/ko/docs/concepts/architecture/nodes/)에 대해 더 배우기 |
129 |
| -* [컨트롤러](/ko/docs/concepts/architecture/controller/)에 대해 더 배우기 |
130 |
| -* [kube-scheduler](/ko/docs/concepts/scheduling-eviction/kube-scheduler/)에 대해 더 배우기 |
131 |
| -* etcd의 공식 [문서](https://etcd.io/docs/) 읽기 |
| 88 | +각 컴포넌트에 대한 자세한 정보와 클러스터 아키텍처를 구성하는 다양한 방법은 |
| 89 | +[클러스터 아키텍처](/ko/docs/concepts/architecture/) 페이지를 참고한다. |
0 commit comments