Wie kann ich kubeadm auf containerd oder cri-docker initialisieren?

Wie kann ich kubeadm auf containerd oder cri-docker initialisieren?

kubectl version --client

`Client-Version: v1.28.1 Angepasste Version: v5.0.4-0.20230601165947-6ce0bf390ce3`

kubeadm version

`kubeadm-Version: &version.Info{Major:"1", Minor:"28", GitVersion:"v1.28.1", GitCommit:"8dc49c4b984b897d423aab4971090e1879eb4f23", GitTreeState:"clean", BuildDate:"2023-08-24T11 :21:51Z", GoVersion:"go1.20.7", Compiler:"gc", Plattform:"linux/amd64"}`

Die in diesem Block beschriebenen Versionen beheben das Problem:

kubeadm installiert oder verwaltet kubelet oder kubectl nicht für Sie. Sie müssen daher sicherstellen, dass sie mit der Version der Kubernetes-Steuerebene übereinstimmen, die kubeadm für Sie installieren soll. Andernfalls besteht das Risiko einer Versionsabweichung, die zu unerwartetem, fehlerhaftem Verhalten führen kann. Eine geringfügige Versionsabweichung zwischen dem Kubelet und der Steuerebene wird jedoch unterstützt, die Kubelet-Version darf jedoch niemals die API-Serverversion überschreiten. Beispielsweise sollte das Kubelet mit 1.7.0 vollständig mit einem 1.8.0-API-Server kompatibel sein, aber nicht umgekehrt.

Es wurde auf einer virtuellen Proxmox-Maschine mit einem minimierten Ubuntu-Server 22.04.3-System installiert.

Leider pingt k8s nicht ohne VPN, daher ist VPN auf dem Host WireGuard aktiviert. Masquerade in NAT konfiguriert.

Ich habe alles gemäß der Dokumentation installiert, cri-docker so installiert, wie es dort steht, und führe es mit dem Befehl aus:kubeadm init --v=5 --cri-socket=unix:///var/run/cri-dockerd.sock

Beim Starten ohne explizit angegebenen Socket erhalte ich eine Fehlermeldung. Ich habe zwei davon (Containerd und Cri-Docker). Wie ich aus den Cri-Docker-Anweisungen verstanden habe, sollte dieser standardmäßig ausgewählt sein.

Ausgabe bei Verwendung von 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.

Ausgabe nach kubeadm reset --v=5 --cri-socker=unix:///var/run/cri-dockerd.sock und 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

Was ist der Fehler und wie kann er behoben werden?

Bei Google dieselben Probleme, aber keine Antworten

Antwort1

Ich hatte das gleiche Problem und habe es gelöst, indem ich das gemacht habe, was in diesem Tutorial beschrieben wird: https://www.jjworld.fr/kubernetes-installation/

verwandte Informationen