Skip to content
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

ja-trans: tasks/run-application/scale-stateful-set/ #15289

Merged
merged 5 commits into from
Jul 11, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/ja/docs/setup/minikube.md
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,7 @@ NodePort上では、 `NodePort` タイプのどのサービスもそのIPアド

`kubectl get service $SERVICE --output='jsonpath="{.spec.ports[0].nodePort}"'`

## 永続化ボリューム
## 永続ボリューム
Minikubeは `hostPath` タイプの[PersistentVolumes](/docs/concepts/storage/persistent-volumes/)をサポートします。
このPersistentVolumesはMinikubeのVM内のディレクトリーにマッピングされます。

Expand Down
80 changes: 80 additions & 0 deletions content/ja/docs/tasks/run-application/scale-stateful-set.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
---
title: StatefulSetのスケール
content_template: templates/task
weight: 50
---

{{% capture overview %}}
このタスクは、StatefulSetをスケールする方法を示します。StatefulSetをスケーリングするとは、レプリカの数を増減することです。
{{% /capture %}}

{{% capture prerequisites %}}

* StatefulSetはKubernetesバージョン1.5以降でのみ利用可能です。
Kubernetesのバージョンを確認するには、`kubectl version`を実行してください。

* すべてのステートフルアプリケーションがうまくスケールできるわけではありません。StatefulSetがスケールするかどうかわからない場合は、[StatefulSetの概念](/docs/concepts/workloads/controllers/statefulset/)または[StatefulSetのチュートリアル](/docs/tutorials/stateful-application/basic-stateful-set/)を参照してください。

* ステートフルアプリケーションクラスターが完全に健全であると確信できる場合にのみ、スケーリングを実行してください。

{{% /capture %}}

{{% capture steps %}}

## StatefulSetのスケール

### kubectlを使用したStatefulSetのスケール

まず、スケールしたいStatefulSetを見つけます。

```shell
kubectl get statefulsets <stateful-set-name>
```

StatefulSetのレプリカ数を変更します:

```shell
kubectl scale statefulsets <stateful-set-name> --replicas=<new-replicas>
```

### StatefulSetのインプレースアップデート

コマンドライン上でレプリカ数を変更する代わりに、StatefulSetに[インプレースアップデート](/docs/concepts/cluster-administration/manage-deployment/#in-place-updates-of-resources)が可能です。

StatefulSetが最初に `kubectl apply`で作成されたのなら、StatefulSetマニフェストの`.spec.replicas`を更新してから、`kubectl apply`を実行します:

```shell
kubectl apply -f <stateful-set-file-updated>
```

そうでなければ、`kubectl edit`でそのフィールドを編集してください:

```shell
kubectl edit statefulsets <stateful-set-name>
```

あるいは`kubectl patch`を使ってください:

```shell
kubectl patch statefulsets <stateful-set-name> -p '{"spec":{"replicas":<new-replicas>}}'
```

## トラブルシューティング

### スケールダウンがうまくいかない

管理するステートフルPodのいずれかが異常である場合、StatefulSetをスケールダウンすることはできません。それらのステートフルPodが実行され準備ができた後にのみ、スケールダウンが行われます。
nasa9084 marked this conversation as resolved.
Show resolved Hide resolved

spec.replicas > 1の場合、Kubernetesは不健康なPodの理由を判断できません。それは、永続的な障害または一時的な障害の結果である可能性があります。一時的な障害は、アップグレードまたはメンテナンスに必要な再起動によって発生する可能性があります。

永続的な障害が原因でPodが正常でない場合、障害を修正せずにスケーリングすると、StatefulSetメンバーシップが正しく機能するために必要な特定の最小レプリカ数を下回る状態になる可能性があります。これにより、StatefulSetが利用できなくなる可能性があります。

一時的な障害によってPodが正常でなくなり、Podが再び使用可能になる可能性がある場合は、一時的なエラーがスケールアップまたはスケールダウン操作の妨げになる可能性があります。一部の分散データベースでは、ノードが同時に参加および脱退するときに問題があります。このような場合は、アプリケーションレベルでスケーリング操作を考えることをお勧めします。また、ステートフルアプリケーションクラスタが完全に健全であることが確実な場合にのみスケーリングを実行してください。

{{% /capture %}}

{{% capture whatsnext %}}

* [StatefulSetの削除](/docs/tasks/run-application/delete-stateful-set/)の詳細

{{% /capture %}}