はじめに
クラウドのキーテクノロジーとなる kubernetes (以下、k8s) の知識習得のため、
Windows10パソコンにk8sクラスタを構築する環境構築方法をまとめます。
k8sとは
恐縮ですが、下記の拙稿をご参照いただけると幸いです。
ローカルにk8sの環境を構築する方法
k8s環境構築にはいくつか方法があります。
代表的なものは以下の3種類です。
- Minikube
- Docker Desktop
- kind (k8s in Docker)
項目 | Minikube | Docker Desktop | kind |
---|---|---|---|
バージョン選択 | 〇 | × | ◎ |
マルチクラスタ | 〇 | × | 〇 |
マルチノード | × | × | 〇 |
機能性 | ◎ | △ | 〇 |
手軽さ | 〇 | ◎ | 〇 |
今回はマルチクラスタ&マルチノードを視野に入れるため、kindを採用します。
kindを利用するためには、Dockerのインストールが必要となります。
ローカルk8s環境の構築手順
おおまかな構築作業の流れとしては以下のようになります。
Ubuntu-20.04をインストール
Powershellを起動して、下記コマンドでインストーラをダウンロード&インストールします。
# Ubuntu.appxというファイル名としてダウンロード
Invoke-WebRequest -Uri https://aka.ms/wslubuntu2004 -OutFile Ubuntu.appx -UseBasicParsing
# ダウンロードしたファイルを元にアプリインストール
Add-AppxPackage .\Ubuntu.appx
Ubuntu-20.04の設定
以下ユーザー名の入力を求められたら何も入力せず、ウィンドウを閉じましょう。
そうすることでrootで自動ログインできます。
Dockerをインストール
詳細はこちら公式ドキュメントをご確認ください。
インストールの流れは以下です。
1. Docker Desktop Installer.exe をダブルクリックし、インストーラを起動します。
2. 確認画面が出たら、 Enable Hyper-V Windows Features (Hyper V の Windows 機能を有効にする)のオプションが、設定ページで選択されているかどうかを確認します。
3. インストール・ウィザードの指示に従い、利用規約を承諾し、インストーラに権限を与えてインストールを進めます。
4. インストールに成功したら、 Close (閉じる)をクリックしてインストールを終了します。
管理者(admin)アカウントと使用中のアカウントが異なる場合、 docker-users グループにユーザを追加する必要があります。(Windows の) コンピュータの管理 を管理者として起動し、 ローカル ユーザーとグループ > グループ > docker-users を右クリックし、対象ユーザをグループに追加します。ログアウト後に戻ってくると、設定が有効になっています。
Dockerの設定
Ubuntu-20.04(WSL2)からdockerコマンドを叩けるようにするため、ONにします。
kubectlを使えるようにするため、ONにします。(それなりに時間がかかる。)
ここまで正常インストール出来たかチェック
Ubuntuを起動して、下記コマンドを叩きます。
各バージョン情報が表示されればインストール完了です。
# Docker version
docker -v
# kubectl version
kubectl version --client
kindをインストール
最後にkindのインストール方法です。
詳細は公式ドキュメントをご確認ください。
# kindをダウンロード
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.1/kind-linux-amd64
# 実行権限付与
chmod +x ./kind
# 実行ファイルを移動
mv ./kind /usr/local/bin/
# バージョン確認
kind version
このようにkindのバージョンが表示されれば完了です。
k8sを試しに動かしてみる。
hello-worldと呼ばれるexampleのDockerをk8s上で動かしてみます。
--restart=Neverは、取り敢えず呪文だと捉えてください。
# hello-worldのDockerイメージをk8sで動かす。
kubectl run hello-world --image hello-world --restart=Never
# k8s上のコンテナ(pod)のステータスの確認する。
kubectl get pod
# hello-worldコンテナ内部のログ確認する。
kubectl logs pod/hello-world
実行画面
Hello from Dockerと表示され、hello-worldコンテナが動いていることを確認できました。
動作確認ができたので、hello-worldを削除しておきます。
下記コマンドを実行してください。
# コンテナ(pod)を削除する。
kubectl delete pod/hello-world
さいごに
Windows10パソコン上にk8sクラスタを構築する準備ができました。
またk8sでhello-worldのDockerコンテナを動かしてみました。
k8sクラスタの構築については、新たに記事を執筆したいと思います。
以上です。