Merge pull request #28619 from jihoon-seo/210625_Update_outdated_files
[ko] Update outdated files in dev-1.21-ko.5 (p5)pull/28593/head
commit
dbda7491c2
|
@ -1,41 +1,42 @@
|
|||
---
|
||||
|
||||
|
||||
title: 데몬셋(DaemonSet)에서 롤링 업데이트 수행
|
||||
content_type: task
|
||||
weight: 10
|
||||
---
|
||||
|
||||
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
이 페이지는 데몬셋에서 롤링 업데이트를 수행하는 방법을 보여준다.
|
||||
|
||||
## {{% heading "prerequisites" %}}
|
||||
|
||||
* 데몬셋 롤링 업데이트 기능은 쿠버네티스 버전 1.6 이상에서만 지원된다.
|
||||
|
||||
<!-- steps -->
|
||||
|
||||
## 데몬셋 업데이트 전략
|
||||
|
||||
데몬셋에는 두 가지 업데이트 전략 유형이 있다.
|
||||
|
||||
* OnDelete: `OnDelete` 업데이트 전략을 사용하여, 데몬셋 템플릿을 업데이트한 후,
|
||||
* `OnDelete`: `OnDelete` 업데이트 전략을 사용하여, 데몬셋 템플릿을 업데이트한 후,
|
||||
이전 데몬셋 파드를 수동으로 삭제할 때 *만* 새 데몬셋 파드가
|
||||
생성된다. 이것은 쿠버네티스 버전 1.5 이하에서의 데몬셋의 동작과
|
||||
동일하다.
|
||||
* RollingUpdate: 기본 업데이트 전략이다.
|
||||
* `RollingUpdate`: 기본 업데이트 전략이다.
|
||||
`RollingUpdate` 업데이트 전략을 사용하여, 데몬셋 템플릿을
|
||||
업데이트한 후, 오래된 데몬셋 파드가 종료되고, 새로운 데몬셋 파드는
|
||||
제어 방식으로 자동 생성된다. 전체 업데이트 프로세스 동안 데몬셋의 최대 하나의 파드가 각 노드에서 실행된다.
|
||||
제어 방식으로 자동 생성된다. 전체 업데이트 프로세스 동안
|
||||
데몬셋의 최대 하나의 파드가 각 노드에서 실행된다.
|
||||
|
||||
## 롤링 업데이트 수행
|
||||
|
||||
데몬셋의 롤링 업데이트 기능을 사용하려면,
|
||||
`.spec.updateStrategy.type` 에 `RollingUpdate` 를 설정해야 한다.
|
||||
|
||||
[`.spec.updateStrategy.rollingUpdate.maxUnavailable`](/ko/docs/concepts/workloads/controllers/deployment/#최대-불가max-unavailable)(기본값은 1)과
|
||||
[`.spec.minReadySeconds`](/ko/docs/concepts/workloads/controllers/deployment/#최소-대기-시간초)(기본값은 0)으로 설정할 수도 있다.
|
||||
[`.spec.updateStrategy.rollingUpdate.maxUnavailable`](/ko/docs/concepts/workloads/controllers/deployment/#최대-불가max-unavailable)
|
||||
(기본값은 1)과
|
||||
[`.spec.minReadySeconds`](/ko/docs/concepts/workloads/controllers/deployment/#최소-대기-시간초)
|
||||
(기본값은 0)으로
|
||||
설정할 수도 있다.
|
||||
|
||||
### `RollingUpdate` 업데이트 전략으로 데몬셋 생성
|
||||
|
||||
|
@ -142,7 +143,7 @@ daemonset "fluentd-elasticsearch" successfully rolled out
|
|||
#### 일부 노드에 리소스가 부족하다
|
||||
|
||||
적어도 하나의 노드에서 새 데몬셋 파드를 스케줄링할 수 없어서 롤아웃이
|
||||
중단되었다. 노드에 [리소스가 부족](/docs/tasks/administer-cluster/out-of-resource/)할 때
|
||||
중단되었다. 노드에 [리소스가 부족](/docs/concepts/scheduling-eviction/node-pressure-eviction/)할 때
|
||||
발생할 수 있다.
|
||||
|
||||
이 경우, `kubectl get nodes` 의 출력 결과와 다음의 출력 결과를 비교하여
|
||||
|
@ -184,12 +185,7 @@ kubectl get pods -l name=fluentd-elasticsearch -o wide -n kube-system
|
|||
kubectl delete ds fluentd-elasticsearch -n kube-system
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
|
||||
* [태스크: 데몬셋에서 롤백
|
||||
수행](/ko/docs/tasks/manage-daemon/rollback-daemon-set/)을 참고한다.
|
||||
* [개념: 기존 데몬셋 파드를 채택하기 위한 데몬셋 생성](/ko/docs/concepts/workloads/controllers/daemonset/)을 참고한다.
|
||||
* [데몬셋에서 롤백 수행](/ko/docs/tasks/manage-daemon/rollback-daemon-set/)을 참고한다.
|
||||
* [기존 데몬셋 파드를 채택하기 위한 데몬셋 생성](/ko/docs/concepts/workloads/controllers/daemonset/)을 참고한다.
|
||||
|
|
|
@ -180,7 +180,7 @@ spec:
|
|||
containers:
|
||||
- name: app
|
||||
image: my-app
|
||||
volumeMount:
|
||||
volumeMounts:
|
||||
- name: config
|
||||
mountPath: /config
|
||||
volumes:
|
||||
|
@ -234,7 +234,7 @@ spec:
|
|||
containers:
|
||||
- image: my-app
|
||||
name: app
|
||||
volumeMount:
|
||||
volumeMounts:
|
||||
- mountPath: /config
|
||||
name: config
|
||||
volumes:
|
||||
|
@ -327,7 +327,7 @@ spec:
|
|||
containers:
|
||||
- name: app
|
||||
image: my-app
|
||||
volumeMount:
|
||||
volumeMounts:
|
||||
- name: password
|
||||
mountPath: /secrets
|
||||
volumes:
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
---
|
||||
title: "gcloud kubectl install"
|
||||
description: "gcloud를 이용하여 kubectl을 설치하는 방법을 각 OS별 탭에 포함하기 위한 스니펫."
|
||||
headless: true
|
||||
---
|
||||
|
||||
Google Cloud SDK를 사용하여 kubectl을 설치할 수 있다.
|
||||
|
||||
1. [Google Cloud SDK](https://cloud.google.com/sdk/)를 설치한다.
|
||||
|
||||
1. `kubectl` 설치 명령을 실행한다.
|
||||
|
||||
```shell
|
||||
gcloud components install kubectl
|
||||
```
|
||||
|
||||
1. 설치한 버전이 최신 버전인지 확인한다.
|
||||
|
||||
```shell
|
||||
kubectl version --client
|
||||
```
|
|
@ -22,7 +22,6 @@ card:
|
|||
- [리눅스에 curl을 사용하여 kubectl 바이너리 설치](#install-kubectl-binary-with-curl-on-linux)
|
||||
- [기본 패키지 관리 도구를 사용하여 설치](#install-using-native-package-management)
|
||||
- [다른 패키지 관리 도구를 사용하여 설치](#install-using-other-package-management)
|
||||
- [리눅스에 Google Cloud SDK를 사용하여 설치](#install-on-linux-as-part-of-the-google-cloud-sdk)
|
||||
|
||||
### 리눅스에서 curl을 사용하여 kubectl 바이너리 설치 {#install-kubectl-binary-with-curl-on-linux}
|
||||
|
||||
|
@ -168,10 +167,6 @@ kubectl version --client
|
|||
|
||||
{{< /tabs >}}
|
||||
|
||||
### 리눅스에 Google Cloud SDK를 사용하여 설치 {#install-on-linux-as-part-of-the-google-cloud-sdk}
|
||||
|
||||
{{< include "included/install-kubectl-gcloud.md" >}}
|
||||
|
||||
## kubectl 구성 확인
|
||||
|
||||
{{< include "included/verify-kubectl.md" >}}
|
||||
|
|
|
@ -22,7 +22,6 @@ card:
|
|||
- [macOS에서 curl을 사용하여 kubectl 바이너리 설치](#install-kubectl-binary-with-curl-on-macos)
|
||||
- [macOS에서 Homebrew를 사용하여 설치](#install-with-homebrew-on-macos)
|
||||
- [macOS에서 Macports를 사용하여 설치](#install-with-macports-on-macos)
|
||||
- [macOS에서 Google Cloud SDK를 사용하여 설치](#install-on-macos-as-part-of-the-google-cloud-sdk)
|
||||
|
||||
### macOS에서 curl을 사용하여 kubectl 바이너리 설치 {#install-kubectl-binary-with-curl-on-macos}
|
||||
|
||||
|
@ -99,10 +98,14 @@ card:
|
|||
1. kubectl 바이너리를 시스템 `PATH` 의 파일 위치로 옮긴다.
|
||||
|
||||
```bash
|
||||
sudo mv ./kubectl /usr/local/bin/kubectl && \
|
||||
sudo mv ./kubectl /usr/local/bin/kubectl
|
||||
sudo chown root: /usr/local/bin/kubectl
|
||||
```
|
||||
|
||||
{{< note >}}
|
||||
`PATH` 환경 변수 안에 `/usr/local/bin` 이 있는지 확인한다.
|
||||
{{< /note >}}
|
||||
|
||||
1. 설치한 버전이 최신 버전인지 확인한다.
|
||||
|
||||
```bash
|
||||
|
@ -148,11 +151,6 @@ macOS에서 [Macports](https://macports.org/) 패키지 관리자를 사용하
|
|||
kubectl version --client
|
||||
```
|
||||
|
||||
|
||||
### Google Cloud SDK를 사용하여 설치 {#install-on-macos-as-part-of-the-google-cloud-sdk}
|
||||
|
||||
{{< include "included/install-kubectl-gcloud.md" >}}
|
||||
|
||||
## kubectl 구성 확인
|
||||
|
||||
{{< include "included/verify-kubectl.md" >}}
|
||||
|
|
|
@ -21,7 +21,6 @@ card:
|
|||
|
||||
- [윈도우에서 curl을 사용하여 kubectl 바이너리 설치](#install-kubectl-binary-with-curl-on-windows)
|
||||
- [Chocolatey 또는 Scoop을 사용하여 윈도우에 설치](#install-on-windows-using-chocolatey-or-scoop)
|
||||
- [윈도우에서 Google Cloud SDK를 사용하여 설치](#install-on-windows-as-part-of-the-google-cloud-sdk)
|
||||
|
||||
|
||||
### 윈도우에서 curl을 사용하여 kubectl 바이너리 설치 {#install-kubectl-binary-with-curl-on-windows}
|
||||
|
@ -127,10 +126,6 @@ card:
|
|||
메모장과 같은 텍스트 편집기를 선택하여 구성 파일을 편집한다.
|
||||
{{< /note >}}
|
||||
|
||||
### 윈도우에서 Google Cloud SDK를 사용하여 설치 {#install-on-windows-as-part-of-the-google-cloud-sdk}
|
||||
|
||||
{{< include "included/install-kubectl-gcloud.md" >}}
|
||||
|
||||
## kubectl 구성 확인
|
||||
|
||||
{{< include "included/verify-kubectl.md" >}}
|
||||
|
|
|
@ -217,7 +217,7 @@ minikube 툴은 활성화하거나 비활성화할 수 있고 로컬 쿠버네
|
|||
storage-provisioner-gluster: disabled
|
||||
```
|
||||
|
||||
2. 한 애드온을 활성화 한다. 예를 들어 `metrics-server`
|
||||
2. 애드온을 활성화 한다. 여기서는 `metrics-server`를 예시로 사용한다.
|
||||
|
||||
```shell
|
||||
minikube addons enable metrics-server
|
||||
|
@ -226,7 +226,7 @@ minikube 툴은 활성화하거나 비활성화할 수 있고 로컬 쿠버네
|
|||
다음과 유사하게 출력된다.
|
||||
|
||||
```
|
||||
metrics-server was successfully enabled
|
||||
The 'metrics-server' addon is enabled
|
||||
```
|
||||
|
||||
3. 생성한 파드와 서비스를 확인한다.
|
||||
|
|
|
@ -833,11 +833,11 @@ kubectl get pods -w -l app=nginx
|
|||
|
||||
다른 터미널에서는 스테이트풀셋을 지우기 위해
|
||||
[`kubectl delete`](/docs/reference/generated/kubectl/kubectl-commands/#delete) 명령어를 이용하자.
|
||||
이 명령어에 `--cascade=false` 파라미터가 추가되었다.
|
||||
이 명령어에 `--cascade=orphan` 파라미터가 추가되었다.
|
||||
이 파라미터는 쿠버네티스에 스테이트풀셋만 삭제하고 그에 속한 파드는 지우지 않도록 요청한다.
|
||||
|
||||
```shell
|
||||
kubectl delete statefulset web --cascade=false
|
||||
kubectl delete statefulset web --cascade=orphan
|
||||
```
|
||||
```
|
||||
statefulset.apps "web" deleted
|
||||
|
@ -953,7 +953,7 @@ kubectl get pods -w -l app=nginx
|
|||
```
|
||||
|
||||
다른 터미널창에서 스테이트풀셋을 다시 지우자. 이번에는
|
||||
`--cascade=false` 파라미터를 생략하자.
|
||||
`--cascade=orphan` 파라미터를 생략하자.
|
||||
|
||||
```shell
|
||||
kubectl delete statefulset web
|
||||
|
|
Loading…
Reference in New Issue