LoginSignup
4
4

More than 1 year has passed since last update.

WSL2でKubernetes v1.21のkindクラスタ作成に失敗する場合の対処MEMO

Posted at

Docker Desktopの有料化の発表に伴い、自宅のWindows10マシンのDocker環境をWSL2 + Dockerに移行したところ、kindクラスタの作成に失敗したので対処MEMOを記載しておきます。

ちなみにkind v0.12がリリースされたら問題は修正されるはずです。

事象

WSL2でkind v0.11.1を使用してkind cluster createを実行した場合、Kubernetes v1.21.1のクラスタ生成が行われますが"Starting control-plane"のところで固まり以下のエラーが発生します。(再現性が100%なのかは不明)

ERROR: failed to create cluster: failed to init node with kubeadm: command "docker exec --privileged kind-control-plane kubeadm init --skip-phases=preflight --config=/kind/kubeadm.conf --skip-token-print --v=6" failed with error: exit status 1
Command Output: I1016 08:52:21.466228     216 initconfiguration.go:246] loading configuration from "/kind/kubeadm.conf"
...
I1016 08:53:02.942960     216 round_trippers.go:454] GET https://kind-control-plane:6443/healthz?timeout=10s  in 0 milliseconds
[kubelet-check] Initial timeout of 40s passed.
[kubelet-check] It seems like the kubelet isn't running or healthy.
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp [::1]:10248: connect: connection refused.
...

原因

以下のIssueが原因です。

詳しくは説明しませんが、ざっくりと言うと「WSL2ではsystemdが動作しておらず、これが原因でkubelet起動に失敗する」ようなバージョンの組み合わせがあるため、kindクラスタ作成に失敗します。Issueを見る限りはv1.21以外では発生しないようです。

既に対処PRもmasterブランチにはマージされていますが、後述するように現時点ではリリースはされていません。

対処方法

kind v0.12のリリースで対処PRが盛り込まれる予定ですが、現時点ではv0.12はリリースされていません。もしkind v0.11.x以下のバージョンで問題を回避したい場合は、以下のようにkindクラスタ作成時に--imageオプションで対処PRで作成されたイメージのタグ(v1.22.1)とハッシュを指定します。

NOTE: kindでは各バージョンでkindクラスタ向けのイメージのタグおよびハッシュが固定されているため、タグだけではなくハッシュも含めて指定が必要となります。

kind create cluster --image kindest/node:v1.22.1@sha256:e0bf222d7dd1589075117c51740903017b328c59ffb0c3d97187a2b3de1f92b3

ちなみにv1.17等のv1.21未満のバージョンであれば本問題は再現しなかったため、古めのバージョンでも問題なければ古いバージョンを指定することでも対処できるようです。
指定可能なバージョンのイメージ情報はkindのReleasesページの各リリースに掲載されているのでそちらを参照してください。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4