学習用途やちょっとした実験用のkubernetes環境はサクッと準備したいですよね。
そんな時に便利な、ブラウザ上で使える無料のkubernetes環境を紹介します。
kubernetes公式
まずは公式ドキュメントに記載されているkubernetes環境を紹介します。
hello minikube
Launch Terminal
ボタンをクリックするとブラウザ上でminikubeが使えます。
minikubeは開発用のkubernetes環境で、現在はシングルノードクラスタです。
本記事執筆時点のクラスタバージョンはv1.17.0
でした。
Your Interactive Learning Environment Bash Terminal
$ start.sh
Starting Kubernetes...minikube version: v1.6.2
commit: 54f28ac5d3a815d1196cd5d57d707439ee4bb392
* minikube v1.6.2 on Ubuntu 18.04
* Selecting 'none' driver from user configuration (alternates: [])
* Running on localhost (CPUs=2, Memory=2461MB, Disk=47990MB) ...
* OS release is Ubuntu 18.04.3 LTS
* Preparing Kubernetes v1.17.0 on Docker '18.09.7' ...
- kubelet.resolv-conf=/run/systemd/resolve/resolv.conf
* Pulling images ...
* Launching Kubernetes ...
* Configuring local host environment ...
* Done! kubectl is now configured to use "minikube"
* dashboard was successfully enabled
Kubernetes Started
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.0", GitCommit:"70132b0f130acc0bed193d9ba59dd186f0e634cf", GitTreeState:"clean", BuildDate:"2019-12-07T21:20:10Z", GoVersion:"go1.13.4", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.0", GitCommit:"70132b0f130acc0bed193d9ba59dd186f0e634cf", GitTreeState:"clean", BuildDate:"2019-12-07T21:12:17Z", GoVersion:"go1.13.4", Compiler:"gc", Platform:"linux/amd64"}
$
Learn Kubernetes Basics
こちらもkubernetes公式ドキュメントに記載されているチュートリアルです。
Interactive Tutorial
のページに進むとブラウザ上でminikubeを操作できます。
アプリのデプロイ・公開手順やスケール・アップデート手順を学ぶことができます。
以下のようなシナリオが用意されています。
- Creating a Cluster
- Deploying an App
- Exploring Your App
- Exposing Your App
- Scaling Your App
- Updating Your App
本記事執筆時点のクラスタバージョンはv1.17.0
でした。
Play with Kubernetes
4時間の時間制限がありますが5ノードまで追加できます。
マルチノードクラスタを試したい場合に便利です。
マルチノードクラスタの構築手順
node1をmasterノードとして初期化します。
[node1 ~]$ kubeadm init --apiserver-advertise-address $(hostname -i)
[node1 ~]$ kubectl apply -n kube-system -f \
"https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 |tr -d '\n')"
[node1 ~]$
workerノードをクラスタにjoinさせるコマンドはkubeadm init
コマンド結果に記載されていますのでクリップボードにコピーしておきます。
そのコマンドをnode2〜5上で叩き、workerノードとしてクラスタにjoinさせます。
[node2 ~]$ kubeadm join 192.168.0.28:6443 --token cz22wg.64gcoic3ewgpfbbb \
--discovery-token-ca-cert-hash sha256:ab56003009cc5110c7878f3de4c1ac3fe2b0a1101d0b79d803853d25b9f08f22
master + worker4台構成のクラスタが構築できました。
[node1 ~]$ kubectl get no
NAME STATUS ROLES AGE VERSION
node1 Ready master 8m32s v1.14.9
node2 Ready <none> 6m7s v1.14.9
node3 Ready <none> 5m9s v1.14.9
node4 Ready <none> 3m15s v1.14.9
node5 Ready <none> 3m12s v1.14.9
[node1 ~]$
Katacoda
様々な技術をブラウザ上で学習できるサイトです。
TwitterやGithubなどのアカウントでログインすると進捗が管理できて便利です。
kubernetesのコースも豊富に用意されていて、ブラウザ上で様々なシナリオを試せます。
Interactive Browser Based Labs, Courses & Playgrounds | Katacoda
例えばこちらのコースには20シナリオが用意されています。
Helm(v2です)やKomposeの使い方も学べます。
Learn Kubernetes using Interactive Browser-Based Labs | Katacoda
まとめ
以上、ブラウザ上で無料で試せるkubernetes環境一覧を紹介しました。
学習用途やちょっとした実験に役立ていただけたら幸いです。
他にも使えそうな環境がありましたら、見つけ次第アップデートします。
- TryK8S : メンテ中なのか使えなかった。
追記 : コメントに有益な情報をいただいていますので、是非ご覧くださいませ。