Files
website/content/ko/docs/tasks/manage-daemon/rollback-daemon-set.md
T
June Yi 6c1edf3c1f Fifth Korean l10n work for release 1.18
- Update to Outdated files in the dev-1.18-ko.5 branch. (#21450)
- Translate tasks/run-application/run-single-instance-stateful-application in Korean (#21174)
- Translate tasks/debug-application-cluster/determine-reason-pod-failure in Korean (#21515)
- Translate tasks/manage-hugepages/scheduling-hugepages.md into Korean (#21337)
- Translate tasks/extend-kubectl/kubectl-plugins.md into Korean (#21454)
- Translate tasks/manage-daemon/rollback-daemon-set.md into Korean (#21376)
- Translate contribute/generate-ref-docs/overview in Korean (#21466)
- Translate reference/kubectl/overview.md into Korean (#21552)
- Translate configure-pod-initialization in Korean (#21600)
- Translate tasks/manage-daemon/update-daemon-set.md into Korean (#21378)

Co-authored-by: Jerry Park <jaehwa@gmail.com>
Co-authored-by: Yoon <learder@gmail.com>
Co-authored-by: Yuk, Yongsu <ysyukr@gmail.com>
Co-authored-by: Seokho Son <shsongist@gmail.com>
Co-authored-by: guslcho <jamie14@naver.com>
Co-authored-by: DongMoon Kim <dmoons.kim@gmail.com>
Co-authored-by: bluefriday <bluefriday86@gmail.com>
2020-06-12 00:00:46 +09:00

4.5 KiB

title, content_template, weight
title content_template weight
데몬셋(DaemonSet)에서 롤백 수행 templates/task 20

{{% capture overview %}}

이 페이지는 데몬셋에서 롤백을 수행하는 방법을 보여준다.

{{% /capture %}}

{{% capture prerequisites %}}

{{% /capture %}}

{{% capture steps %}}

데몬셋에서 롤백 수행

1단계: 롤백할 데몬셋 리비전 찾기

마지막 리비전으로 롤백하려는 경우 이 단계를 건너뛸 수 있다.

데몬셋의 모든 리비전을 나열한다.

kubectl rollout history daemonset <daemonset-name>

이 명령은 데몬셋 리비전 목록을 반환한다.

daemonsets "<daemonset-name>"
REVISION        CHANGE-CAUSE
1               ...
2               ...
...
  • 변경 원인은 데몬셋 어노테이션 kubernetes.io/change-cause 에서 생성 시의 리비전으로 복사된다. 변경 원인 어노테이션에서 실행된 명령을 기록하도록 kubectl--record=true 를 지정할 수 있다.

특정 리비전의 세부 사항을 보려면 다음을 수행한다.

kubectl rollout history daemonset <daemonset-name> --revision=1

이 명령은 해당 리비전의 세부 사항을 반환한다.

daemonsets "<daemonset-name>" with revision #1
Pod Template:
Labels:       foo=bar
Containers:
app:
 Image:       ...
 Port:        ...
 Environment: ...
 Mounts:      ...
Volumes:       ...

2단계: 특정 리비전으로 롤백

# --to-revision에 1단계에서 얻는 리비전 번호를 지정한다
kubectl rollout undo daemonset <daemonset-name> --to-revision=<revision>

성공하면, 명령은 다음을 반환한다.

daemonset "<daemonset-name>" rolled back

--to-revision 플래그를 지정하지 않은 경우, 마지막 리비전이 선택된다.

3단계: 데몬셋 롤백 진행 상황 확인

kubectl rollout undo daemonset 은 서버에 데몬셋 롤백을 시작하도록 지시한다. 실제 롤백은 서버 측에서 비동기적으로 수행된다.

롤백 진행 상황을 보려면 다음의 명령을 수행한다.

kubectl rollout status ds/<daemonset-name>

롤백이 완료되면, 출력 결과는 다음과 비슷하다.

daemonset "<daemonset-name>" successfully rolled out

{{% /capture %}}

{{% capture discussion %}}

데몬셋 리비전의 이해

이전 kubectl rollout history 단계에서, 데몬셋 리비전 목록을 얻었다. 각 리비전은 ControllerRevision 이라는 리소스에 저장된다. ControllerRevision 은 쿠버네티스 릴리스 1.7 이상에서만 사용할 수 있는 리소스이다.

각 리비전에 저장된 내용을 보려면, 데몬셋 리비전 원시 리소스를 찾는다.

kubectl get controllerrevision -l <daemonset-selector-key>=<daemonset-selector-value>

이 명령은 ControllerRevisions 의 목록을 반환한다.

NAME                               CONTROLLER                     REVISION   AGE
<daemonset-name>-<revision-hash>   DaemonSet/<daemonset-name>     1          1h
<daemonset-name>-<revision-hash>   DaemonSet/<daemonset-name>     2          1h

ControllerRevision 은 데몬셋 리비전의 어노테이션과 템플릿을 저장한다. ControllerRevision 오브젝트의 이름은 유효한 DNS 서브도메인 이름이어야 한다.

kubectl rollout undo 는 특정 ControllerRevision 을 가져와 데몬셋 템플릿을 ControllerRevision 에 저장된 템플릿으로 바꾼다. kubectl rollout undokubectl edit 또는 kubectl apply 와 같은 다른 명령을 통해 데몬셋 템플릿을 이전 리비전으로 업데이트하는 것과 같다.

{{< note >}} 데몬셋 리비전은 롤 포워드만 한다. 즉, 롤백이 완료된 후, 롤백될 ControllerRevision 의 리비전 번호(.revision 필드)가 증가한다. 예를 들어, 시스템에 리비전 1과 2가 있고, 리비전 2에서 리비전 1으로 롤백하면, ControllerRevision.revision: 1 에서 .revision: 3 이 된다. {{< /note >}}

문제 해결

{{% /capture %}}