Deploymentとは何か
Deployment(デプロイメント)は、同じPodを決めた数だけ動かし続ける、Kubernetesの部品です。Podが1つ消えても、Deploymentがすぐ新しいPodを作り、数を元に戻します。
注文アプリを3つ動かしたいとき、Podを3回作る必要はありません。「3つ」と書いておけば足ります。
このレッスンのゴール
メモ
Deploymentで、同じPodを3つ動かし続けられる。
重要な言葉
| ことば | いみ | れい |
|---|---|---|
| Deployment | Podの数を、決めた通りに保つ部品 | |
| レプリカ | 同じPodのコピー1つ | |
| ReplicaSet | レプリカの数を数えて保つ、Deploymentの下の部品 | |
| スケール | レプリカの数を変えること | kubectl scale |
| ラベル | Podに付ける、名前と値の札 | app=menu |
| 希望の状態 | こうなってほしいと書いた状態 |
学生が入力するセルは、このプレビューでは空白です。
Deploymentは「3つ動かす」と約束する
Deploymentには、使うイメージと、レプリカの数を書きます。これが希望の状態です。
Kubernetesは、今のPodの数と希望の数を、何度も比べます。足りなければ作り、多ければ止めます。Deploymentが直接数えるのは、下のReplicaSetです。
名前空間を作る
kubectl create namespace cafeここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
Pod 3つのDeployment
kubectl create deployment menu --image=busybox:1.37.0 --replicas=3 -n cafe -- sleep 3600ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
全部動くまで待つ
kubectl rollout status deployment/menu -n cafeここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
Deploymentを読む
kubectl get deployment menu -n cafeここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
get deployment の列の読み方
| 列 | 意味 | いまの値 |
|---|---|---|
| READY | 動いているPodの数と、希望の数 | 3/3 |
| UP-TO-DATE | 今の書き方どおりに作ったPodの数 | 3 |
| AVAILABLE | すぐ使えるPodの数 | 3 |
学生が入力するセルは、このプレビューでは空白です。
ReplicaSetを見る
kubectl get replicasets -n cafeここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
Podを3つ見る
kubectl get pods -n cafe -l app=menuここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
消したPodは、同じ数だけ戻る
Deploymentがあると、Podが消えても、数が足りないことにKubernetesが気づきます。すぐ新しいPodを作って、希望の数に戻します。
ラベルを使うと、まとめて消せます。-l app=menu は、ラベル app=menu を持つPodを選びます。消えたPodの名前と、戻ったPodの名前は、別のものです。
Podを全部消す
kubectl delete pods -n cafe -l app=menu --grace-period=1ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
戻ったPodを見る
kubectl get pods -n cafe -l app=menuここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
数を変えるのはscale
レプリカの数を変えるのは、Podを消すことではありません。希望の数を書き換えることです。
kubectl scale は、希望の数だけを書き換えます。5つに増やすと、Kubernetesが2つ足します。3つに戻すと、2つを止めます。
5つに増やす
kubectl scale deployment menu -n cafe --replicas=5ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
5つ動くまで待つ
kubectl rollout status deployment/menu -n cafeここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
希望の数だけを読む
kubectl get deployment menu -n cafe -o jsonpath='{.spec.replicas}'ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
出来事ごとの数の変化
| 出来事 | 希望の数 | 動いているPod |
|---|---|---|
| Deploymentを作る | 3 | 3 |
| Podを1つ消す | 3 | 3(すぐ作り直される) |
| 5つにscaleする | 5 | 5 |
| Deploymentを消す | 0 | 0 |
学生が入力するセルは、このプレビューでは空白です。
よくある間違い
注意
Podの数を減らすには、Podを消せばよいと思いがちです。Deploymentがあると、消したPodはすぐ作り直されます。数を減らしたいときは、kubectl scale で希望の数を下げます。
名前空間を片づける
kubectl delete namespace cafeここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。