クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

Deploymentでアプリを動かし続ける

このレッスンのあとで: Deploymentで、同じPodを3つ動かし続けられる。

60分のレッスンコマンド12件Kubernetes のラボ:専用の Ubuntu VM に生徒ごとの1ノード k3s クラスター

Deploymentとは何か

Deployment(デプロイメント)は、同じPodを決めた数だけ動かし続ける、Kubernetesの部品です。Podが1つ消えても、Deploymentがすぐ新しいPodを作り、数を元に戻します。

注文アプリを3つ動かしたいとき、Podを3回作る必要はありません。「3つ」と書いておけば足ります。

このレッスンのゴール

メモ

Deploymentで、同じPodを3つ動かし続けられる。

重要な言葉

ことばいみれい
DeploymentPodの数を、決めた通りに保つ部品
レプリカ同じ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を作る33
Podを1つ消す33(すぐ作り直される)
5つにscaleする55
Deploymentを消す00

学生が入力するセルは、このプレビューでは空白です。

よくある間違い

注意

Podの数を減らすには、Podを消せばよいと思いがちです。Deploymentがあると、消したPodはすぐ作り直されます。数を減らしたいときは、kubectl scale で希望の数を下げます。

名前空間を片づける

コマンド
kubectl delete namespace cafe

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

このラボとソースについて: Kubernetes のラボ:専用の Ubuntu VM に生徒ごとの1ノード k3s クラスター

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。