KubernetesでKIND

投稿者: | 10月 25, 2020

KubernetesをKINDで立ち上げる方法のメモ
KINDというとThe 4th KINDという映画を思い出す。アラスカが舞台のホラー。ミラ・ジョヴォヴィッチ嬢が出てくるだけでバイオハザード的な感じが否めないが。。。気になる方はぜひ

全然関係ねぇ。閑話休題。

KINDって何?という方に簡単に説明をすると、Kubernatesを普通に?たてるとPodがDockerで上がってきたりするが、KINDは、NodeがDockerで上がってくる。後述するが、Windows 10 May 2020以降だとHyper-V、VMware環境だとDockerではなく仮想マシンがノードとして上がってくる。
つまり、ノードのホストを用意しないでいい。1台のマシンで簡単に試せる。ただし、メモリは食うし、少し重いような気がする。

また、Windows 10 May 2020以降で、もし、VMware WorkstationでNest ESXを使っているという奇特な方は、ネィティブOS上で利用することを諦めた方がいい。WSL2とNest ESXは共存ができないので、
コンテナを検証する場合は、Linux VMでテストをするしかない。また、Linux VMでやる場合は、X Windowの魔術師でなければ、Desktop環境をいれたほうがいい。
まぁ、素直にVMware WorkstationでNest ESXの利用をやめるのが吉なんだが。。。VLANも使えないし。

 

事前準備

ケース毎に説明をすると
・VMware Workstation/VMware Fusionを使う場合
入れておけばいい。ただVMware Workstationも実際はWSL2が動作するのではないかと思う。
起動方法は、
vctl system start
vctl kind
とすることでkindからノードとして認識してくれる。

・Windows 10 May 2020以降
以下にしたがって、WSL2を設定
https://kind.sigs.k8s.io/docs/user/using-wsl2/
ちなみに、Docker desktop for Windowsを入れてもいいが、WSL2が導入される様である。

・Linux/MacOS/Windows 10 1909以前
Dockerをインストールして、動作することを確認する

 

Kindのインストール
インストール方法は、詳しくは以下。
https://kind.sigs.k8s.io/docs/user/quick-start/
簡単に手順を言うと、kindコマンドとkubectlを入れるだけ。

残念だが、実は手元にWindows環境がない。。。MacとLinux、VMware環境のみの記述になる。Windowsでやるとコマンドラインオプションの補完とかが効かなくてめんどくさくて。。。

・Mac OSの場合、brewで入れる。(https://brew.sh)

# Kubectlのインストール
brew install kubectl
# KINDのインストール
brew install kind

・Linuxの場合

# Kubectlのインストール
sudo apt update && sudo apt install -y apt-transport-https gnupg2 curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add –
echo “deb https://apt.kubernetes.io/ kubernetes-xenial main” | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl

# KINDのインストール (https://github.com/kubernetes-sigs/kind/releases)
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.9.0/kind-linux-amd64
chmod +x ./kind
mv ./kind /usr/local/bin/kind

クラスタの作成
kind create cluster
以下のようなメッセージが表示されたら完了。VMwareで作ると少し古いバージョンが入る様子)
Creating cluster “kind” …
✓ Ensuring node image (kindest/node:v1.19.1) 🖼
✓ Preparing nodes 📦
✓ Writing configuration 📜
✓ Starting control-plane 🕹️
✓ Installing CNI 🔌
✓ Installing StorageClass 💾
Set kubectl context to “kind-kind”
You can now use your cluster with:

kubectl cluster-info –context kind-kind

Have a nice day! 👋

とりあえずは、これで立ち上がった様子である。
kubectl get node
NAME STATUS ROLES AGE VERSION
kind-control-plane Ready master 2m13s v1.19.1

クラスタを壊したいのであれば、以下のコマンド
kind delete cluster

 

とりあえずは、遊べる環境ができた。。。という自分も勉強中だが。如何せん、インフラ周りをさわれないというか触る必要がないのが新鮮である。バージョンがーとかストレージがーとかサーバーがー、ネットワークがーと言っている人には新手の宗教にしか見えないだろうなぁ。。。きっと。

コメントを残す