我重新安装了几个Ubuntu22.04服务器,安装了最新的(1.24.3) kubeadm、kubelet和kubectl。我也使用容器作为CRI。
当我试图通过运行预飞启动K8s集群时,会发生以下错误:
# kubeadm config images pull --kubernetes-version=v1.24.3 --v=5
I0808 04:27:08.139042 475778 initconfiguration.go:117] detected and using CRI socket: unix:///var/run/containerd/containerd.sock
I0808 04:27:08.139530 475778 interface.go:432] Looking for default routes with IPv4 addresses
I0808 04:27:08.139580 475778 interface.go:437] Default route transits interface "ens160"
I0808 04:27:08.140022 475778 interface.go:209] Interface ens160 is up
I0808 04:27:08.140168 475778 interface.go:257] Interface "ens160" has 2 addresses :[10.0.1.12/8 fe80::250:56ff:fe83:e1e3/64].
I0808 04:27:08.140231 475778 interface.go:224] Checking addr 10.0.1.12/8.
I0808 04:27:08.140271 475778 interface.go:231] IP found 10.0.1.12
I0808 04:27:08.140307 475778 interface.go:263] Found valid IPv4 address 10.0.1.12 for interface "ens160".
I0808 04:27:08.140344 475778 interface.go:443] Found active IP 10.0.1.12
I0808 04:27:08.140415 475778 kubelet.go:218] the value of KubeletConfiguration.cgroupDriver is empty; setting it to "systemd"
exit status 1
output: time="2022-08-08T04:27:08Z" level=fatal msg="unable to determine image API version: rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing dial unix /var/run/cri-dockerd.sock: connect: no such file or directory\""
, error
k8s.io/kubernetes/cmd/kubeadm/app/util/runtime.(*CRIRuntime).PullImage
cmd/kubeadm/app/util/runtime/runtime.go:121
k8s.io/kubernetes/cmd/kubeadm/app/cmd.PullControlPlaneImages
cmd/kubeadm/app/cmd/config.go:340
k8s.io/kubernetes/cmd/kubeadm/app/cmd.newCmdConfigImagesPull.func1
cmd/kubeadm/app/cmd/config.go:312
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).execute
vendor/github.com/spf13/cobra/command.go:856
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).ExecuteC
vendor/github.com/spf13/cobra/command.go:974
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).Execute
vendor/github.com/spf13/cobra/command.go:902
k8s.io/kubernetes/cmd/kubeadm/app.Run
cmd/kubeadm/app/kubeadm.go:50
main.main
cmd/kubeadm/kubeadm.go:25
runtime.main
/usr/local/go/src/runtime/proc.go:250
runtime.goexit
/usr/local/go/src/runtime/asm_amd64.s:1571
failed to pull image "k8s.gcr.io/kube-apiserver:v1.24.3"
k8s.io/kubernetes/cmd/kubeadm/app/cmd.PullControlPlaneImages
cmd/kubeadm/app/cmd/config.go:341
k8s.io/kubernetes/cmd/kubeadm/app/cmd.newCmdConfigImagesPull.func1
cmd/kubeadm/app/cmd/config.go:312
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).execute
vendor/github.com/spf13/cobra/command.go:856
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).ExecuteC
vendor/github.com/spf13/cobra/command.go:974
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).Execute
vendor/github.com/spf13/cobra/command.go:902
k8s.io/kubernetes/cmd/kubeadm/app.Run
cmd/kubeadm/app/kubeadm.go:50
main.main
cmd/kubeadm/kubeadm.go:25
runtime.main
/usr/local/go/src/runtime/proc.go:250
runtime.goexit
/usr/local/go/src/runtime/asm_amd64.s:1571显然,输出没有找到比较版本,没有找到cri-dockerd。这种情况不应该是这样的,因为我显式地指定了kube版本和输出的开头,并且它还能够在开始时找到容器。
cri插件已经在/etc/containerd/config.toml中禁用:
# cat /etc/containerd/config.toml|grep cri
disabled_plugins = ["cri"]我是k8s的新手,所以我不知道它有什么问题。我从一开始就被跟踪到了k8s文档,不知道缺少什么:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/
发布于 2022-10-05 01:34:36
你不应该禁用cri插件。
请从该部分中删除cri,然后重新启动容器。
disabled_plugins = []最好在每个kubeadm命令中添加cri-socket选项,以防万一:
kubeadm <commands> --cri-socket=/var/run/containerd/containerd.sockhttps://serverfault.com/questions/1107740
复制相似问题