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과 제어 플레인 사이에 하나의 마이너 버전 차이가 지원되지만 kubelet 버전은 API 서버 버전을 초과할 수 없습니다. 예를 들어, 1.7.0을 실행하는 kubelet은 1.8.0 API 서버와 완전히 호환되어야 하지만 그 반대는 불가능합니다.

우분투 서버 22.04.3 최소화 시스템을 갖춘 proxmox 가상 머신에 설치되었습니다.

불행히도 k8s는 VPN 없이는 ping을 수행하지 않으므로 호스트 WireGuard에서 VPN이 활성화됩니다. NAT에서 가장 무도회를 구성했습니다.

문서에 따라 모든 것을 설치하고 거기에 작성된 대로 cri-docker를 설치한 후 다음 명령을 사용하여 실행합니다.kubeadm init --v=5 --cri-socket=unix:///var/run/cri-dockerd.sock

명시적으로 지정된 소켓 없이 시작할 때 오류가 발생합니다. cri-docker 지침에서 이해했듯이 그 중 2개(containerd 및 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/ 이후의 출력 실행/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

오류는 무엇이며 해결 방법은 무엇입니까?

구글에도 같은 문제가 있는데 답변이 없네요

답변1

나는 같은 문제가 있었고 이 튜토리얼에 작성된 내용을 수행하여 문제를 해결했습니다. https://www.jjworld.fr/kubernetes-installation/

관련 정보