You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| [`node.kubernetes.io/not-ready`](/ko/docs/reference/labels-annotations-taints/#node-kubernetes-io-not-ready) | `NoExecute` | 데몬셋 파드는 상태가 좋지 않거나 파드를 수용할 준비가 되지 않은 노드에 스케줄링 될 수 있다. 이러한 노드에서 실행중인 데몬셋 파드는 제거되지 않는다. |
162
+
| [`node.kubernetes.io/unreachable`](/ko/docs/reference/labels-annotations-taints/#node-kubernetes-io-unreachable) | `NoExecute` | 데몬셋 파드는 노드 컨트롤러에서 접근할 수 없는 노드에 예약될 수 있다. 이러한 노드에서 실행 중인 데몬셋 파드는 제거되지 않는다. |
163
+
| [`node.kubernetes.io/disk-pressure`](/ko/docs/reference/labels-annotations-taints/#node-kubernetes-io-disk-pressure) | `NoSchedule` | 데몬셋 파드는 디스크 압박 문제가 있는 노드에 예약될 수 있다. |
164
+
| [`node.kubernetes.io/memory-pressure`](/ko/docs/reference/labels-annotations-taints/#node-kubernetes-io-memory-pressure) | `NoSchedule` | 데몬셋 파드는 메모리 부족 문제가 있는 노드에 예약될 수 있다. |
165
+
| [`node.kubernetes.io/pid-pressure`](/ko/docs/reference/labels-annotations-taints/#node-kubernetes-io-pid-pressure) | `NoSchedule` | 데몬셋 파드는 프로세스 부족 문제가 있는 노드에 예약될 수 있다. |
166
+
| [`node.kubernetes.io/unschedulable`](/ko/docs/reference/labels-annotations-taints/#node-kubernetes-io-unschedulable) | `NoSchedule` | 데몬셋 파드는 예약할 수 없는 노드에 예약될 수 있다. |
167
+
| [`node.kubernetes.io/network-unavailable`](/ko/docs/reference/labels-annotations-taints/#node-kubernetes-io-network-unavailable) | `NoSchedule` | **호스트 네트워킹을 요청하는 데몬셋 파드에만 추가되었다**, 즉, `spec.hostNetwork: true`를 가진 파드이다. 이러한 데몬셋 파드는 네트워크를 사용할 수 없는 노드에 예약될 수 있다.|
168
+
169
+
{{< /table >}}
170
+
171
+
데몬셋의 파드 템플릿에서 정의하여,
172
+
데몬셋의 파드에 자체 톨러레이션을 추가할 수도 있다.
173
+
174
+
데몬셋 컨트롤러가
175
+
`node.kubernetes.io/unschedulable:NoSchedule`톨러레이션을 자동으로 설정하므로,
176
+
쿠버네티스는 _unschedulable_ 로 표시된 노드에서 데몬셋 파드를 실행할 수 있다.
177
+
178
+
데몬셋을 사용하여 [클러스터 네트워킹](/ko/docs/concepts/cluster-administration/networking/)과 같은
179
+
중요한 노드 수준 기능을 제공하는 경우,
180
+
쿠버네티스가 데몬셋 파드를 노드가 준비되기 전에 노드에 배치하는 것이 도움이 된다.
181
+
예를 들어, 이러한 특별한 허용 범위가 없으면 네트워크 플러그인이
182
+
실행 중이 아니기 때문에 노드가 준비 완료로 표시되지 않고,
183
+
동시에 노드가 아직 준비되지 않았기 때문에 네트워크 플레인이
184
+
해당 노드에서 실행되지 않는 교착 상태에 빠질 수 있다.
163
185
164
186
## 데몬 파드와 통신
165
187
@@ -169,12 +191,13 @@ nodeAffinity:
169
191
구성되어 있다. 그들은 클라이언트들을 가지지 않는다.
170
192
- **노드IP와 알려진 포트**: 데몬셋의 파드는 `호스트 포트`를 사용할 수 있으며,
171
193
노드IP를 통해 파드에 접근할 수 있다.
172
-
클라이언트는 노드IP를 어떻게든지 알고 있으며, 관례에 따라 포트를 알고 있다.
194
+
클라이언트는 노드IP 목록을 어떻게든지 알고 있으며, 관례에 따라 포트를 알고 있다.
173
195
- **DNS**: 동일한 파드 셀렉터로 [헤드리스 서비스](/ko/docs/concepts/services-networking/service/#헤드리스-headless-서비스)를 만들고,
174
196
그 다음에 `엔드포인트` 리소스를 사용해서 데몬셋을 찾거나
175
197
DNS에서 여러 A레코드를 검색한다.
176
198
- **서비스**: 동일한 파드 셀렉터로 서비스를 생성하고, 서비스를 사용해서
177
-
임의의 노드의 데몬에 도달한다(특정 노드에 도달할 방법이 없다).
199
+
임의의 노드의 데몬에 도달한다. [서비스 내부 트래픽 정책](/ko/docs/concepts/services-networking/service-traffic-policy/)을 사용하여
200
+
동일한 노드에 있는 파드로 제한한다.
178
201
179
202
## 데몬셋 업데이트
180
203
@@ -198,55 +221,54 @@ nodeAffinity:
198
221
199
222
데몬 프로세스를 직접 노드에서 시작해서 실행하는 것도 당연히 가능하다.
200
223
(예: `init`, `upstartd` 또는 `systemd` 를 사용). 이 방법도 문제는 전혀 없다. 그러나 데몬셋을 통해 데몬
201
-
프로세스를 실행하면 몇 가지 이점 있다.
224
+
프로세스를 실행하면 몇 가지 장점이 있다.
202
225
203
-
- 애플리케이션과 동일한 방법으로 데몬을 모니터링하고 로그 관리를 할 수 있다.
226
+
- 애플리케이션과 동일한 방법으로 데몬 로그를 모니터링하고 관리할 수 있다.
204
227
- 데몬 및 애플리케이션과 동일한 구성 언어와 도구(예: 파드 템플릿, `kubectl`).
205
-
- 리소스 제한이 있는 컨테이너에서 데몬을 실행하면 앱 컨테이너에서
206
-
데몬간의 격리를 증가시킨다. 그러나 이것은 파드가 아닌 컨테이너에서 데몬을 실행해서 이루어진다.
228
+
- 리소스 제한이 있는 컨테이너에서 데몬을 실행하면 애플리케이션 컨테이너와
229
+
데몬간의 격리가 강화된다. 그러나 데몬을 파드가 아닌 컨테이너에서 실행하여 이를 달성할 수도 있다.
207
230
208
231
### 베어(Bare) 파드
209
232
210
233
직접적으로 파드를 실행할 특정한 노드를 명시해서 파드를 생성할 수 있다. 그러나
211
234
데몬셋은 노드 장애 또는 커널 업그레이드와 같이 변경사항이 많은 노드 유지보수의 경우를 비롯하여
212
235
어떠한 이유로든 삭제되거나 종료된 파드를 교체한다. 따라서 개별 파드를
213
-
생성하는 것보다는 데몬 셋을 사용해야 한다.
236
+
생성하는 것보다는 데몬셋을 사용해야 한다.
214
237
215
238
### 스태틱(static) 파드 {#static-pods}
216
239
217
-
Kubelet이 감시하는 특정 디렉터리에 파일을 작성하는 파드를 생성할 수 있다. 이것을
218
-
[스태틱 파드](/ko/docs/tasks/configure-pod-container/static-pod/)라고 부른다.
240
+
Kubelet이 감시하는 특정 디렉터리에 파일을 작성하여 파드를 생성할 수 있다. 이것을
241
+
[스태틱 파드](/ko/docs/tasks/configure-pod-container/static-pod/)라고 한다.
219
242
데몬셋과는 다르게 스태틱 파드는 kubectl
220
243
또는 다른 쿠버네티스 API 클라이언트로 관리할 수 없다. 스태틱 파드는 API 서버에 의존하지
221
-
않기 때문에 클러스터 부트스트랩(bootstraping)하는 경우에 유용하다. 또한 스태틱 파드는 향후에 사용 중단될 수 있다.
244
+
않기 때문에 클러스터를 초기 구동(bootstraping)하는 경우에 유용하다. 또한 스태틱 파드는 향후에 사용 중단될 수 있다.
222
245
223
246
### 디플로이먼트
224
247
225
-
데몬셋은 파드를 생성한다는 점에서 [디플로이먼트](/ko/docs/concepts/workloads/controllers/deployment/)와 유사하고,
226
-
해당 파드에서는 프로세스가 종료되지 않을 것으로
227
-
예상한다(예: 웹 서버).
248
+
데몬셋은 파드를 생성하고 해당 파드에서는 프로세스가 종료되지 않을 것으로
249
+
예상한다(예: 웹 서버, 스토리지 서버)는 점에서
250
+
[디플로이먼트](/ko/docs/concepts/workloads/controllers/deployment/)와 유사하다.
228
251
229
-
파드가 실행되는 호스트를 정확하게 제어하는 것보다 레플리카의 수를 스케일링 업 및 다운 하고,
252
+
파드가 실행되는 호스트를 정확하게 제어하는 것보다 레플리카의 수를 스케일링 업 및 다운하고,
230
253
업데이트 롤아웃이 더 중요한 프런트 엔드와 같은 것은 스테이트리스 서비스의
231
254
디플로이먼트를 사용한다. 데몬셋이 특정 노드에서 다른 파드가 올바르게 실행되도록 하는 노드 수준 기능을 제공한다면,
232
255
파드 사본이 항상 모든 호스트 또는 특정 호스트에서 실행되는 것이 중요한 경우에 데몬셋을 사용한다.
233
256
234
257
예를 들어, [네트워크 플러그인](/ko/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/)은 데몬셋으로 실행되는 컴포넌트를 포함할 수 있다. 데몬셋 컴포넌트는 작동 중인 노드가 정상적인 클러스터 네트워킹을 할 수 있도록 한다.
235
258
259
+
236
260
## {{% heading "whatsnext" %}}
237
261
238
262
* [파드](/ko/docs/concepts/workloads/pods/)에 대해 배운다.
0 commit comments