Skip to content

Commit

Permalink
Update basic-stateful-set.md (#17774)
Browse files Browse the repository at this point in the history
  • Loading branch information
power8993 authored and k8s-ci-robot committed Nov 25, 2019
1 parent 840e4ba commit 36a4ebc
Showing 1 changed file with 21 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ weight: 10
kubectl get pods -w -l app=nginx
```

두번째 터미널에서
두 번째 터미널에서
[`kubectl apply`](/docs/reference/generated/kubectl/kubectl-commands/#apply)
`web.yaml`에 정의된 헤드리스 서비스와 스테이트풀셋을 생성한다.

Expand All @@ -92,7 +92,7 @@ web 2 1 20s

### 차례대로 파드 생성하기

N개의 레플리카를 가진 스테이트풀셋은 배포시에
N개의 레플리카를 가진 스테이트풀셋은 배포 시에
순차적으로 {0..N-1} 순으로 생성된다.
첫째 터미널에서 `kubectl get` 명령의 출력 내용을 살펴보자.
결국 그 내용은 아래 예와 비슷할 것이다.
Expand Down Expand Up @@ -179,7 +179,7 @@ SRV 레코드는 파드의 IP 주소를 포함한 A 레코드 엔트리를 지
```shell
kubectl get pod -w -l app=nginx
```
두번째 터미널에서 스테이트풀셋 내에 파드를 모두 삭제하기위해
두 번째 터미널에서 스테이트풀셋 내에 파드를 모두 삭제하기 위해
[`kubectl delete`](/docs/reference/generated/kubectl/kubectl-commands/#delete)
이용하자.

Expand Down Expand Up @@ -234,7 +234,7 @@ Address 1: 10.244.2.8
스테이트풀셋의 파드에 접속하지 않도록 하는 것이 중요하다.


스테이트풀셋의 활성 맴버를 찾아 연결할 경우
스테이트풀셋의 활성 멤버를 찾아 연결할 경우
헤드리스 서비스(`nginx.default.svc.cluster.local`)의 CNAME을 쿼리해야 한다.
CNAME과 연관된 SRV 레코드는 스테이트풀셋의
Running과 Ready 상태의 모든 파드들을
Expand Down Expand Up @@ -295,15 +295,15 @@ for i in 0 1; do kubectl exec web-$i -- chmod 755 /usr/share/nginx/html; done
kubectl get pod -w -l app=nginx
```

두번째 터미널에서 스테이트풀셋의 모든 파드를 삭제하자.
두 번째 터미널에서 스테이트풀셋의 모든 파드를 삭제하자.

```shell
kubectl delete pod -l app=nginx
pod "web-0" deleted
pod "web-1" deleted
```
첫번째 터미널에서 실행 중인 `kubectl get`명령어의 출력을 확인하고,
모든 파드가 Running과 Ready 상태로 전환될때까지 기다리자.
첫 번째 터미널에서 실행 중인 `kubectl get`명령어의 출력을 확인하고,
모든 파드가 Running과 Ready 상태로 전환될 때까지 기다리자.

```shell
kubectl get pod -w -l app=nginx
Expand Down Expand Up @@ -353,8 +353,8 @@ kubectl scale sts web --replicas=5
statefulset.apps/web scaled
```

첫번째 터미널에서 실행 중인 `kubectl get`명령어의 출력을 확인하고,
3개의 추가 파드가 Running과 Ready 상태로 전환될때까지 기다리자.
첫 번째 터미널에서 실행 중인 `kubectl get`명령어의 출력을 확인하고,
3개의 추가 파드가 Running과 Ready 상태로 전환될 때까지 기다리자.

```shell
kubectl get pods -w -l app=nginx
Expand All @@ -379,7 +379,7 @@ web-4 1/1 Running 0 19s
스테이트풀셋 컨트롤러는 레플리카개수를 스케일링한다.
[스테이트풀셋 생성](#ordered-pod-creation)으로 스테이트풀셋 컨트롤러는
각 파드을 순차적으로 각 순번에 따라 생성하고 후속 파드 시작 전에
이전 파드가 Running과 Ready 상태가 될때까지
이전 파드가 Running과 Ready 상태가 될 때까지
기다린다.

### 스케일 다운 {#scaling-down}
Expand Down Expand Up @@ -418,7 +418,7 @@ web-3 1/1 Terminating 0 42s

### 순차 파드 종료

컨트롤러는 순번의 역순으로 한번에 1개 파드를 삭제하고
컨트롤러는 순번의 역순으로 한 번에 1개 파드를 삭제하고
다음 파드를 삭제하기 전에
각각이 완전하게 종료되기까지 기다린다.

Expand Down Expand Up @@ -508,7 +508,7 @@ web-0 1/1 Running 0 10s

스테이트풀셋 내에 파드는 순번의 역순으로 업데이트된다.
이 스테이트풀셋 컨트롤러는 각 파드를 종료시키고 다음 파드를 업데이트하기 전에
그것이 Running과 Ready 상태로 전환될때까지 기다린다.
그것이 Running과 Ready 상태로 전환될 때까지 기다린다.
알아둘 것은 비록 스테이트풀셋 컨트롤러에서 이전 파드가 Running과 Ready 상태가 되기까지
다음 파드를 업데이트하지 않아도 현재 버전으로 파드를 업데이트하다 실패하면 복원한다는 것이다.
업데이트를 이미 받은 파드는 업데이트된 버전으로 복원되고 아직 업데이트를 받지 못한 파드는
Expand Down Expand Up @@ -703,7 +703,7 @@ k8s.gcr.io/nginx-slim:0.7
`partition``0`으로 이동하여 스테이트풀셋 컨트롤러에서 계속해서
업데이트 처리를 하도록 허용하였다.

### 삭제시 동작
### 삭제 시 동작

`OnDelete` 업데이트 전략은 예전 동작(1.6 이하)으로,
이 업데이트 전략을 선택하면 스테이트풀셋 컨트롤러는 스테이트풀셋의
Expand Down Expand Up @@ -769,7 +769,7 @@ web-2 1/1 Running 0 7m
kubectl get pods -w -l app=nginx
```

두번째 터미널에서 스테이트풀셋을 다시 생성하자.
두 번째 터미널에서 스테이트풀셋을 다시 생성하자.
`nginx` 서비스(가지지 말았어야 하는)를 삭제하기 전까지는 그 서비스가 이미 존재한다는 에러를
볼 것이라는 것을 명심하자.

Expand Down Expand Up @@ -800,7 +800,7 @@ web-2 0/1 Terminating 0 3m
web-2 0/1 Terminating 0 3m
```

`web` 스테이트풀셋이 다시 생성될때 먼저 `web-0` 시작한다.
`web` 스테이트풀셋이 다시 생성될 때 먼저 `web-0` 시작한다.
`web-1`은 이미 Running과 Ready 상태이므로 `web-0`이 Running과 Ready 상태로
전환될 때는 단순히 이 파드에 적용됬다. 스테이트풀셋에`replicas`를 2로 하고
`web-0`을 재생성했다면 `web-1`
Expand All @@ -816,7 +816,7 @@ web-0
web-1
```

스테이트풀셋과 `web-0` 파드를 둘다 삭제했으나 여전히 `index.html` 파일에 입력했던
스테이트풀셋과 `web-0` 파드를 둘 다 삭제했으나 여전히 `index.html` 파일에 입력했던
원래 호스트네임을 제공한다. 스테이트풀셋은
파드에 할당된 퍼시스턴트볼륨을 결코 삭제하지 않기때문이다.
다시 스테이트풀셋을 생성하면 `web-0`을 시작하며
Expand All @@ -838,7 +838,7 @@ kubectl delete statefulset web
statefulset.apps "web" deleted
```
첫째 터미널에서 실행 중인 `kubectl get` 명령어의 출력을 살펴보고
모든 파드가 Terminating 상태로 전환될때까지 기다리자.
모든 파드가 Terminating 상태로 전환될 때까지 기다리자.

```shell
kubectl get pods -w -l app=nginx
Expand Down Expand Up @@ -958,9 +958,9 @@ web-0 1/1 Running 0 10s
web-1 1/1 Running 0 10s
```

스테이트풀셋 컨트롤러는 `web-0``web-1`둘다 동시에 시작했다.
스테이트풀셋 컨트롤러는 `web-0``web-1`둘 다 동시에 시작했다.

두번째 터미널을 열어 놓고 다른 터미널창에서 스테이트풀셋을
두 번째 터미널을 열어 놓고 다른 터미널창에서 스테이트풀셋을
스케일링 하자.

```shell
Expand All @@ -980,8 +980,8 @@ web-3 1/1 Running 0 26s
```


스테이트풀 컨트롤러는 두개의 새 파드를 시작하였다.
두번째 것을 런칭하기 위해 먼저 런칭한 것이 Running과 Ready 상태가 될 떄까지 기다리지 않는다.
스테이트풀 컨트롤러는 두 개의 새 파드를 시작하였다.
두 번째 것을 런칭하기 위해 먼저 런칭한 것이 Running과 Ready 상태가 될 때까지 기다리지 않는다.

이 터미널을 열어 놓고 다른 터미널에서 `web` 스테이트풀셋을 삭제하자.

Expand Down

0 comments on commit 36a4ebc

Please sign in to comment.