-
Notifications
You must be signed in to change notification settings - Fork 15.1k
[ko] Update /ko/concepts/workloads/controllers/daemonset.md #52944
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
k8s-ci-robot
merged 2 commits into
kubernetes:main
from
Eundms:ko/concepts-workloads-controllers-daemonset
Nov 1, 2025
Merged
Changes from 1 commit
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -6,8 +6,14 @@ | |||||
| # - janetkuo | ||||||
| # - kow3ns | ||||||
| title: 데몬셋 | ||||||
| api_metadata: | ||||||
| - apiVersion: "apps/v1" | ||||||
| kind: "DaemonSet" | ||||||
| description: >- | ||||||
| 데몬셋은 노드 로컬 기능을 제공하는 파드를 정의한다. 이러한 파드는 네트워킹 도우미 도구처럼 클러스터 운영에 필수적인 기능일 수도 있고 애드온의 일부일 수도 있다. | ||||||
| content_type: concept | ||||||
| weight: 40 | ||||||
| hide_summary: true # Listed separately in section index | ||||||
| --- | ||||||
|
|
||||||
| <!-- overview --> | ||||||
|
|
@@ -35,7 +41,7 @@ _데몬셋_ 은 모든(또는 일부) 노드가 파드의 사본을 실행하도 | |||||
| YAML 파일에 데몬셋 명세를 작성할 수 있다. 예를 들어 아래 `daemonset.yaml` 파일은 | ||||||
| fluentd-elasticsearch 도커 이미지를 실행하는 데몬셋을 설명한다. | ||||||
|
|
||||||
| {{< codenew file="controllers/daemonset.yaml" >}} | ||||||
| {{% code_sample file="controllers/daemonset.yaml" %}} | ||||||
|
|
||||||
| YAML 파일을 기반으로 데몬셋을 생성한다. | ||||||
|
|
||||||
|
|
@@ -79,12 +85,12 @@ kubectl apply -f https://k8s.io/examples/controllers/daemonset.yaml | |||||
| `.spec.template`의 레이블과 매치되는 | ||||||
| 파드 셀렉터를 명시해야 한다. | ||||||
| 또한, 한 번 데몬셋이 만들어지면 | ||||||
| `.spec.selector` 는 바꿀 수 없다. | ||||||
| 파드 셀렉터를 변형하면 의도치 않게 파드가 고아가 될 수 있으며, 이는 사용자에게 혼란을 주는 것으로 밝혀졌다. | ||||||
| `.spec.selector` 는 바꿀 수 없다. 파드 셀렉터를 변형하면 | ||||||
| 의도치 않게 파드가 고아가 될 수 있으며, 이는 사용자에게 혼란을 주는 것으로 밝혀졌다. | ||||||
|
|
||||||
| `.spec.selector` 는 다음 2개의 필드로 구성된 오브젝트이다. | ||||||
|
|
||||||
| * `matchLabels` - [레플리케이션 컨트롤러](/ko/docs/concepts/workloads/controllers/replicationcontroller/)의 | ||||||
| * `matchLabels` - [레플리케이션컨트롤러](/ko/docs/concepts/workloads/controllers/replicationcontroller/)의 | ||||||
| `.spec.selector` 와 동일하게 작동한다. | ||||||
| * `matchExpressions` - 키, 값 목록 그리고 키 및 값에 관련된 연산자를 | ||||||
| 명시해서 보다 정교한 셀렉터를 만들 수 있다. | ||||||
|
|
@@ -105,30 +111,31 @@ kubectl apply -f https://k8s.io/examples/controllers/daemonset.yaml | |||||
|
|
||||||
| ## 데몬 파드가 스케줄 되는 방법 | ||||||
|
|
||||||
| ### 기본 스케줄러로 스케줄 | ||||||
|
|
||||||
| {{< feature-state for_k8s_version="1.17" state="stable" >}} | ||||||
|
|
||||||
| 데몬셋은 자격이 되는 모든 노드에서 파드 사본이 실행하도록 보장한다. 일반적으로 | ||||||
| 쿠버네티스 스케줄러에 의해 파드가 실행되는 노드가 선택된다. 그러나 | ||||||
| 데몬셋 파드는 데몬셋 컨트롤러에 의해 생성되고 스케줄된다. | ||||||
| 이에 대한 이슈를 소개한다. | ||||||
|
|
||||||
| * 파드 동작의 불일치: 스케줄 되기 위해서 대기 중인 일반 파드는 `Pending` 상태로 생성된다. | ||||||
| 그러나 데몬셋 파드는 `Pending` 상태로 생성되지 않는다. | ||||||
| 이것은 사용자에게 혼란을 준다. | ||||||
| * [파드 선점](/ko/docs/concepts/scheduling-eviction/pod-priority-preemption/)은 | ||||||
| 기본 스케줄러에서 처리한다. 선점이 활성화되면 데몬셋 컨트롤러는 | ||||||
| 파드 우선순위와 선점을 고려하지 않고 스케줄 한다. | ||||||
|
|
||||||
| `ScheduleDaemonSetPods` 로 데몬셋 파드에 `.spec.nodeName` 용어 대신 | ||||||
| `NodeAffinity` 용어를 추가해서 데몬셋 컨트롤러 대신 기본 | ||||||
| 스케줄러를 사용해서 데몬셋을 스케줄할 수 있다. 이후에 기본 | ||||||
| 스케줄러를 사용해서 대상 호스트에 파드를 바인딩한다. 만약 데몬셋 파드에 | ||||||
| 이미 노드 선호도가 존재한다면 교체한다(대상 호스트를 선택하기 전에 | ||||||
| 원래 노드의 어피니티가 고려된다). 데몬셋 컨트롤러는 | ||||||
| 데몬셋 파드를 만들거나 수정할 때만 이런 작업을 수행하며, | ||||||
| 데몬셋의 `spec.template` 은 변경되지 않는다. | ||||||
| 데몬셋은 자격이 되는 모든 노드에서 파드 사본이 실행하도록 보장한다. | ||||||
| 데몬셋 컨트롤러는 각 적격한 노드에 파드를 생성하고 | ||||||
| 파드의 `spec.affinity.nodeAffinity` 필드를 추가하여 대상 호스트와 일치시킨다. | ||||||
| 파드가 생성되면 일반적으로 기본 스케줄러가 작업을 인계받아 | ||||||
| `.spec.nodeName` 필드를 설정하여 파드를 대상 호스트에 바인딩한다. | ||||||
| 새 파드가 노드에 맞지 않으면 기본 스케줄러가 새 파드의 | ||||||
| [우선순위](/ko/docs/concepts/scheduling-eviction/pod-priority-preemption/#pod-priority)에 따라 | ||||||
| 기존 파드 중 일부를 | ||||||
| 선점(제거)할 수 있다. | ||||||
|
|
||||||
| {{< note >}} | ||||||
| 데몬셋 파드가 각 노드에서 실행되는 것이 중요한 경우, 데몬셋의 | ||||||
| `.spec.template.spec.priorityClassName` 을 더 높은 우선순위를 가진 | ||||||
| [프라이어리티클래스(PriorityClass)](/ko/docs/concepts/scheduling-eviction/pod-priority-preemption/#priorityclass)로 설정하여 | ||||||
| 이러한 축출이 발생하도록 하는 것이 좋다. | ||||||
| {{< /note >}} | ||||||
|
|
||||||
| 사용자는 데몬셋의 `.spec.template.spec.schedulerName` 필드를 설정하여 | ||||||
| 데몬셋의 파드에 다른 스케줄러를 지정할 수 있다. | ||||||
|
|
||||||
| `.spec.template.spec.affinity.nodeAffinity` 필드(지정된 경우)에 | ||||||
| 지정된 원래 노드 어피니티는 | ||||||
| 데몬셋 컨트롤러가 적격 노드를 평가할 때 고려되지만, | ||||||
| 생성된 파드에서는 적격 노드의 이름과 일치하는 노드 어피니티로 | ||||||
| 대체된다. | ||||||
|
|
||||||
| ```yaml | ||||||
| nodeAffinity: | ||||||
|
|
@@ -141,25 +148,40 @@ nodeAffinity: | |||||
| - target-host-name | ||||||
| ``` | ||||||
|
|
||||||
| 또한, 데몬셋 파드에 `node.kubernetes.io/unschedulable:NoSchedule` 이 톨러레이션(toleration)으로 | ||||||
| 자동으로 추가된다. 기본 스케줄러는 데몬셋 파드를 | ||||||
| 스케줄링시 `unschedulable` 노드를 무시한다. | ||||||
|
|
||||||
| ### 테인트(taints)와 톨러레이션(tolerations) | ||||||
|
|
||||||
| 데몬 파드는 | ||||||
| [테인트와 톨러레이션](/ko/docs/concepts/scheduling-eviction/taint-and-toleration/)을 존중하지만, | ||||||
| 다음과 같이 관련 기능에 따라 자동적으로 데몬셋 파드에 | ||||||
| 톨러레이션을 추가한다. | ||||||
| 데몬셋 컨트롤러는 데몬셋 파드에 | ||||||
| {{< glossary_tooltip text="톨러레이션" term_id="toleration" >}} 세트를 추가한다. | ||||||
|
||||||
| {{< glossary_tooltip text="톨러레이션" term_id="toleration" >}} 세트를 추가한다. | |
| {{< glossary_tooltip text="톨러레이션" term_id="toleration" >}} 세트를 자동으로 추가한다. |
원문의 automatically 의 번역이 누락된 것 같습니다.
Outdated
Member
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
L236: "데몬 셋을" -> "데몬셋을"
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line needs to be consistent with L21: "데몬셋 은 모든(또는 일부) 노드가 파드의 사본을 실행하도록 한다. 노드가 클러스터에 추가되면". I like "실행하도록 보장한다" - please reflect L21 translation.