できるだけ簡単にKubernetesする(Windows10)Part1


私がKubernetes使い始めたころ、
・いろいろ覚えることありすぎて大変だなぁ
・なんかもっと簡単にできたらいいんだけど…

と、感じることが多かったので、
そんな自分みたいな人がいたのなら役に立つかも、と思いまして、
できるだけ簡単にKubernetesを使えるところを目的として、書いてみようと思います。

はじめに

なぜ、Kubernetesを使うべきなのか、などは書きません。

Kubernetes関連の記事はたくさん良いものがあります。
ただ、ボリュームが多すぎて、「使うの躊躇するんだよな」という方に向けて、
「これならやってみようか」と思えるよう書けたら嬉しいです。

なので、もうすでにKubernetes使ってるよ、という方には目新しい情報はない記事です。
せっかく開いていただいたのに、すみません。

環境は?

Windows 10 pro で Docker Desktop を使い、進めていきます。

私、仕事では、AWSのEKSを使っているのですが、
いきなりEKSで、説明すると、
・AWS使ってないよ
・お金かかるじゃん(2020年1月ごろ、EKSクラスターが、いきなり半額になりました)
・Kubernetesって言ってたのに、結局、他のものも勉強しなきゃいけない

などにより、このページを閉じたくなると思いますので、
現段階では、クラウドを避けて、今お使いいただいているPCで作成可能な
ローカルKubernetesでいってみます。

Dockerは勉強しなくていいの?

Docker Desktop を使うくらいだから、
前提知識として Docker を使えるのが、当然な感じしそうですが、
まったく使えなくても大丈夫です。

Docker を知ってるに越したことはないのですが、
yamlファイルなど、書き方が異なる部分もありますので、
必要な時に取り上げるとして、現時点で勉強する必要はないです。

kubernetesを使うと決めている時点で、
「dockerって何?」
「コンテナって、初めて聞いたんだけど……」
って、ことはないと思いますが、
「いまいちよくわからないんだよな」という人はそのままで大丈夫です。

Docker Desktop インストール

まずは、「Docker Desktop」のインストールです。
ブラウザで「Docker Desktop」と検索すると、
Docker Desktop のページが検索結果に出てきますので、
そちらへ行き、中央の Download for Windows (stable) でダウンロードしましょう。

ダウンロードしたものをダブルクリックで実行すると、
ユーザーアカウント制御の画面が出てきますので、
「はい」を押して許可します。

少し待っていただくと、Docker Desktop の設定項目が少し出てきます。

Docker Desktop は Hyper-V を使いますので、上の
Enable Hyper-V Windows Features は、チェックを入れておいてください。

下は、ショートカットの作成なので、お好みで構いません。
「OK」を押し、インストールされるのをしばらく待ちましょう。

「Installation succeeded」が出ればOKですので、
「Close and restart」を押し、再起動してください。

Close and restart は、Docker Desktop が再起動するのではなく、
Windowsが再起動しますので、ご注意ください。

再起動後、Docker Desktop が使えるようになっていますので、
Docker Desktop を起動してみましょう。

すると、チュートリアルの画面が出てきます。
いろいろと説明してくれるようですが、
今回はチュートリアルを無視して、赤枠で囲った歯車マークを押しましょう。

すると、Docker Desktop の設定画面に移ります。

「General」の「Start Docker Desktop when you login」
にチェックを入れておくと、
Windows起動時に、Docker Desktop も起動してくれるので、
毎日使うのであれば、チェックしておいた方が楽です。

重要なのは、一番下の「Kubernetes」項目です。

「Kubernetes」の「Enable Kubernetes」にチェックを入れましょう。

残りの項目は、必要が出てきたら設定すれば問題ありませんので、
無視して「Apply & Restart」を押します。

このRestartは、Windowsでなく、
Docker Desktop なので、安心です。

結構、時間がかかりますが、下記画像のように、
Kubernetes 部分が緑丸で、running になりましたらOKです。

Kubernetes確認

では、ためしにコマンドプロンプトでも起動して、
「kubectl version」
で、バージョンを確かめてみましょう。

C:\Users\test>kubectl version
Client Version: version.Info{Major:"1", Minor:"16+", GitVersion:"v1.16.6-beta.0", GitCommit:"e7f962ba86f4ce7033828210ca3556393c377bcc", GitTreeState:"clean", BuildDate:"2020-01-15T08:26:26Z", GoVersion:"go1.13.5", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"16+", GitVersion:"v1.16.6-beta.0", GitCommit:"e7f962ba86f4ce7033828210ca3556393c377bcc", GitTreeState:"clean", BuildDate:"2020-01-15T08:18:29Z", GoVersion:"go1.13.5", Compiler:"gc", Platform:"linux/amd64"}

Client Version と Server Version が表示されているので、問題なさそうです。

では次に、現在何か動いているものがあるか確かめてみましょうか。
「kubectl get all」コマンドで確認できます。

C:\Users\test>kubectl get all
NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   2d2h

何か1つあるようですね。

こちらはおいおい見ていくとして、
おめでとうございます。
これでKubernetesが使えるようになりました。

とはいえ、やりたいことはここではないと思いますので、
次回、使い方を書いていきます。

まとめ

今回は、ただKubernetesを使えるようにしただけなので、なんてことなかったと思いますが、
私、最初はここまで来るのも結構苦労してた記憶があります。

次回は、実際にKubernetesを使っていく予定です。

以下は、今回で詰まりそうな部分を書いておきました。
順調にここまで進んだ方は、読まなくて大丈夫です。

トラブルシューティング

Hyper-Vが使えない

コマンドプロンプトを管理者権限で起動し、以下のコマンドをうってください。
bcdedit /enum | find "hypervisorlaunchtype"

C:\WINDOWS\system32>bcdedit /enum | find "hypervisorlaunchtype"
hypervisorlaunchtype    Auto

Hyper-VがONの時は、hypervisorlaunchtype が Auto になっているはずです、
もし、hypervisorlaunchtype が Off になっていましたら、以下のコマンドをうってください。
bcdedit /set hypervisorlaunchtype auto

C:\WINDOWS\system32>bcdedit /set hypervisorlaunchtype auto
この操作を正しく終了しました。

再度確認すると、Autoになっているはずです。

C:\WINDOWS\system32>bcdedit /enum | find "hypervisorlaunchtype"
hypervisorlaunchtype    Auto

Autoになっていることを確認しましたら、Windowsを再起動してください。
再起動後、Hyper-Vが使えるはずです。