毎度、ググっても出てこない小ネタを取り扱っております。
本記事は個人的な見解であり、筆者の所属するいかなる団体にも関係ございません。
0. 始めに
社内でKubernetesの勉強会をしたのですが、その時にKubernetesサーバーを立てるのも大変だったので、Docker for WindowsのKubernetesを使おうと言うことになり、複数の人にWindows10へDocker for Windowsを入れてもらい、Kubernetes機能を有効にしたのだけど、Kubernetes機能がいつまで経っても起動してこない人がいた(私です)ので、トラブルシューティングしてみました。
1. Docker for Windowsのインストールについて
以下をご参照ください。
Docker for WindowsでKubernetesを試してみる - Qiita
https://qiita.com/h-r-k-matsumoto/items/68f694650029ddf7351d
Dockerのトラブルシューティングについては以下をご覧ください。
Windows10 × Docker for Windows トラブルシューティング - Qiita
https://qiita.com/takeru08ma/items/7878a293c55a9902f404
2. インストールしたバージョン
3. 状況
下のDockerとKubernetesで、Kubernetes側がいつまで経ってもオレンジでした
(以下の画像は動くようになった時のステータスです)
Hyper-VマネージャーもずっとCPU使用率が0%でした。
(以下の画像は動くようになった時のステータスです)
4. 対応策
3日ほど放っておいても改善しないのでググってみました。
以下を見つけました。
Unable to start kubernetes on docker desktop win 10 pro · Issue #3799 · docker/for-win
https://github.com/docker/for-win/issues/3799
どうも、以前Docker for WindowsでKubernetesを動かしたことがある人の固有の問題のようです。
C:\Users<Windowsアカウント>.kubeフォルダー
と
C:\ProgramData\DockerDesktop\pki
が関係しているらしく、中を見ると
.kubeフォルダー
Kubernetesを構築したことがある人はピンとくると思いますが、各種Kubernetesのサービス用のサーバー証明書が入っています。
pkiフォルダーを削除します。
タスクトレイのDockerから「Restart」を選択してDockerを再起動します。
5. 原因
Hyper-Vで動くKubernetesの仮想サーバーで使うTLSの鍵情報を新しい鍵情報を作ろうとしていたが、以前インストールした時のものが残っていてDocker for Windowsはデフォルトでは上書きしない為、いつまで経っても起動しなかった。
ということのようです。
6. まとめ
Happy, Kuberneting!
WSL2が待ち遠しいです。