containerd または cri-docker で kubeadm を初期化するにはどうすればよいですか?

containerd または cri-docker で kubeadm を初期化するにはどうすればよいですか?

kubectl version --client

`クライアントバージョン: v1.28.1 カスタマイズバージョン: v5.0.4-0.20230601165947-6ce0bf390ce3`

kubeadm version

`kubeadm バージョン: &version.Info{メジャー:"1", マイナー:"28", GitVersion:"v1.28.1", GitCommit:"8dc49c4b984b897d423aab4971090e1879eb4f23", GitTreeState:"clean", BuildDate:"2023-08-24T11 :21:51Z", GoVersion:"go1.20.7", コンパイラ:"gc", プラットフォーム:"linux/amd64"}`

バージョンにより、このブロックで説明されている問題が解消されます。

kubeadm は kubelet や kubectl をインストールまたは管理しないため、kubeadm でインストールする Kubernetes コントロール プレーンのバージョンと一致していることを確認する必要があります。一致していないと、予期しないバグのある動作につながるバージョンのずれが生じるリスクがあります。ただし、kubelet とコントロール プレーン間の 1 つのマイナー バージョンのずれはサポートされていますが、kubelet のバージョンが API サーバーのバージョンを超えることはありません。たとえば、1.7.0 を実行している kubelet は 1.8.0 API サーバーと完全に互換性がありますが、その逆は当てはまりません。

これは、Ubuntu サーバー 22.04.3 の最小化されたシステムを備えた proxmox 仮想マシンにインストールされました。

残念ながら、k8s は VPN なしでは ping を実行できないため、ホストの WireGuard で VPN が有効になっています。NAT でマスカレードを構成しました。

ドキュメントに従ってすべてをインストールし、そこに書かれているとおりに cri-docker をインストールし、次のコマンドで実行しました。kubeadm init --v=5 --cri-socket=unix:///var/run/cri-dockerd.sock

明示的に指定されたソケットなしで起動すると、エラーが発生します。2 つのソケット (containerd と cri-docker) があり、cri-docker の説明から理解したとおり、デフォルトで選択されているはずです。

cri-dockerd 使用時の出力:

[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http:// localhost:10248/healthz": dial tcp 127.0.0.1:10248: connect: connection refused.

kubeadm reset --v=5 --cri-socker=unix:///var/run/cri-dockerd.sock および kubeadm init --v=5 --cri-socket=unix: ///var/run/containerd/containerd.sock 後の出力:

[preflight] Some fatal errors occurred: [ERROR CRI]: container runtime is not running: output: time="2023-09-07T15:56:59Z" level=fatal msg="validate service connection: validate CRI v1 runtime API for endpoint \"unix:/// var/run/containerd/containerd.sock\": rpc error: code = Unimplemented desc = unknown service runtime.v1.RuntimeService" , error: exit status 1

エラーとは何ですか? また、それを修正するにはどうすればいいですか?

Googleでも同じ問題が見つかりましたが、答えはありませんでした

答え1

私も同じ問題を抱えていましたが、このチュートリアルに書かれていることを実行して解決しました: https://www.jjworld.fr/kubernetes-installation/

関連情報