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

無料レッスン

ノード、名前空間、Podとは

このレッスンのあとで: ノード、名前空間、Podがそれぞれ何かを説明できる。

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

Kubernetesとは何か

Kubernetes(クバネティス)は、アプリを入れたコンテナを、たくさんのコンピュータで動かし続ける道具です。何をいくつ動かしたいかを書いておくと、Kubernetesがその通りに保ちます。

たとえば、ラーメン店の注文アプリを動かすとします。1台が止まっても、残りで動かし続けたいはずです。このレッスンでは、ノード、名前空間、Podという3つの基本の言葉を、本物のクラスタで見ます。

このレッスンのゴール

メモ

ノード、名前空間、Podがそれぞれ何かを説明できる。

重要な言葉

ことばいみれい
クラスタKubernetesが管理する、コンピュータの集まり
ノードクラスタの中の、1台のコンピュータ
Podコンテナを1つ以上入れた、動かす単位
名前空間クラスタの中を仕切る、名前の入れ物kube-system
コンテナアプリと必要なものを1つにまとめた箱
kubectlクラスタに話しかけるコマンドkubectl get nodes

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

クラスタはノードの集まり

ノードは、クラスタの中の1台のコンピュータです。本物のクラスタには何台ものノードがあり、仕事を分け合います。

このラボの k3s は、軽い Kubernetes です。ノードは1台で、あなたの仮想マシンそのものです。1台でも、使い方は何台ものクラスタと同じです。

入れ物の大きさを比べる

言葉何かこのラボでの例
クラスタノードと、それを管理するしくみの全体この仮想マシンの k3s
ノード1台のコンピュータノード1台だけ
名前空間クラスタの中の仕切りdefault、kube-system
Pod動かす単位。コンテナが入るkube-system の coredns
コンテナPodの中で動くアプリbusybox

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

kubectl get nodes はノードを並べる

kubectl get nodes は、ノードを1行に1つ出します。STATUS が Ready なら、仕事を受けられます。

ROLES には control-plane と出ます。クラスタを動かす役目も、この1台が持つという意味です。NAME の値と AGE は、マシンごとに違います。

ノードの一覧

コマンド
kubectl get nodes

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

名前空間はクラスタの中の仕切り

名前空間は、クラスタの中を仕切る名前の入れ物です。別々の名前空間なら、同じ名前のものを置けます。

kube-system には、Kubernetes自身が使うPodが入っています。名前空間を選ぶには -n を付けます。付けないと、default の中を見ます。

名前空間の一覧

コマンド
kubectl get namespaces

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

kube-systemのPod

コマンド
kubectl get pods -n kube-system

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

Podは動かす単位

Podは、コンテナを1つ以上入れた、動かす単位です。Kubernetesは、コンテナでなくPodを並べて動かします。

kubectl run は、Podを1つ作ります。kubectl get pods の READY は、動いているコンテナの数と、全部の数です。1/1 は、1つのうち1つが動いている印です。

名前空間を作る

コマンド
kubectl create namespace cafe

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

Podを1つ作る

コマンド
kubectl run order --image=busybox:1.37.0 -n cafe -- sleep 3600

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

Podが動くまで待つ

コマンド
kubectl wait --for=condition=Ready pod/order -n cafe --timeout=90s

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

cafeのPod

コマンド
kubectl get pods -n cafe

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

ノード名とIPも見る

コマンド
kubectl get pods -n cafe -o wide

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

よくある間違い

注意

Podが消えたら、Kubernetesが自動で戻してくれると思いがちです。それは違います。kubectl run で作ったPod1つは、消すとそのままなくなります。戻す役目を持つのは、次のレッスンの Deployment です。

Podを消す

コマンド
kubectl delete pod order -n cafe

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

消えたことを確かめる

コマンド
kubectl get pods -n cafe

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

名前空間を片づける

コマンド
kubectl delete namespace cafe

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

さらに挑戦: 表の見出しを読む

すべての名前空間のPodは、kubectl get pods -A で見られます。この表には、左に NAMESPACE の列が増えます。

課題の関数は、どこを直せばこの表も読めるでしょうか。列の位置が1つずれるので、parts[0] と parts[2] の番号を考えましょう。

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

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