kakakakakku blog

Weekly Tech Blog: Keep on Learning!

Killercoda : ウェブ上ですぐに試せる Kubernetes 環境 と Ubuntu 環境

今回の記事では Killercoda を使ってウェブ上ですぐに試せる学習コンテンツを作る.前回の記事で紹介した「Katacoda インポート機能」 ではなく,以下のドキュメントを参考にイチからシナリオを作る.

killercoda.com

環境

現在 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.jsonkubernetes-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.jsonubuntu を設定する.

実際に動作確認をすると 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 上でコード実装をするのも便利!消す可能性はあるけど,今回作ったシナリオは以下で試せる.

killercoda.com

関連記事

その他シナリオサンプルは GitHub に公開されている!

github.com

Katacoda インポート機能に関しては以下の記事にまとめてある!

kakakakakku.hatenablog.com