今回の記事では Killercoda を使ってウェブ上ですぐに試せる学習コンテンツを作る.前回の記事で紹介した「Katacoda インポート機能」 ではなく,以下のドキュメントを参考にイチからシナリオを作る.
環境
現在 Killercoda は「3種類」の環境をサポートしている.
ubuntu
(Ubuntu 20.04)kubernetes-kubeadm-1node
(Kubernetes v1.24.0 : 1台構成)kubernetes-kubeadm-2nodes
(Kubernetes v1.24.0 : 2台構成)
Linux 操作やミドルウェア検証など,環境を自由に使い倒すなら ubuntu
環境を使う.ubuntu
環境には Python や Go もセットアップされていてコード実装の演習環境としても使える.Kubernetes の検証なら kubernetes-kubeadm-1node
環境と kubernetes-kubeadm-2nodes
環境を使う.ドキュメントにも書いてある通り,可能なら kubernetes-kubeadm-1node
環境を使う.
ディレクトリ構成
今回は以下のディレクトリ構成でコンテンツを作る.index.json
には設定を記述して,Markdown にはコンテンツを記述する.
. ├── kubernetes-1node │ ├── finish.md │ ├── index.json │ ├── intro.md │ └── step1.md ├── kubernetes-kubeadm-2nodes │ ├── finish.md │ ├── index.json │ ├── intro.md │ └── step1.md └── ubuntu ├── finish.md ├── index.json ├── intro.md └── step1.md
GitHub リポジトリにコンテンツを push すると Webhook で自動的にデプロイされる!便利!
kubernetes-kubeadm-1node
環境を試す
まずは kubernetes-kubeadm-1node
環境を試す.index.json
は以下のように書く.ポイントは backend.imageid
でここに環境名を設定する.details.steps
は配列になっているため,複数ステップを含めることもできる.
{ "title": "playground-kubernetes-1node", "description": "playground-kubernetes-1node", "details": { "intro": { "text": "intro.md" }, "steps": [ { "text": "step1.md" } ], "finish": { "text": "finish.md" } }, "backend": { "imageid": "kubernetes-kubeadm-1node" } }
具体例として step1.md
を以下のように書く.{{exec}}
構文を使えばコマンドをクリックで実行できる.
# step1 ノードを確認します。 `kubectl get nodes`{{exec}} nginx Pod を起動します。 `kubectl run nginx --image nginx:1.21`{{exec}} Pod を確認します。 `kubectl get pods`{{exec}}
実際に動作確認をすると Kubernetes v1.24.0 を使えるようになっていた.Pod を起動したり,基本的な操作はできそう.
controlplane $ kubectl get nodes NAME STATUS ROLES AGE VERSION controlplane Ready control-plane 75d v1.24.0
kubernetes-kubeadm-2nodes
環境を試す
次に kubernetes-kubeadm-2nodes
環境を試す.同じように index.json
に kubernetes-kubeadm-2nodes
を設定する.
実際に動作確認をすると Kubernetes v1.24.0 で controlplane
ノードと node01
ノードの2台構成になっていた.
controlplane $ kubectl get nodes NAME STATUS ROLES AGE VERSION controlplane Ready control-plane 83d v1.24.0 node01 Ready <none> 83d v1.24.0
ubuntu
環境を試す
最後は ubuntu
環境を試す.同じように index.json
に ubuntu
を設定する.
実際に動作確認をすると Ubuntu 20.04 だった.
ubuntu $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.3 LTS Release: 20.04 Codename: focal
また Killercoda はどの環境にもデフォルトでエディタが同梱されている.VS Code に似ている Theia が同梱されていて,IDE でコードが書けるのは便利!
まとめ
Killercoda で現在サポートされている「3種類」の環境でコンテンツを作ってみた.ウェブ上ですぐに Kubernetes を試せるのは特に初学者にとって便利だし,エディタも同梱されているので,Ubuntu 上でコード実装をするのも便利!消す可能性はあるけど,今回作ったシナリオは以下で試せる.
関連記事
その他シナリオサンプルは GitHub に公開されている!
Katacoda インポート機能に関しては以下の記事にまとめてある!