kubernetes

[Kubernetes]validate service connection: CRI v1 image API is not implemented for endpoint

easysheep 2023. 10. 23. 09:52

1. 환경 

AWS EC2 instance

os : ubuntu 20.04 LTS

2. 오류 발생 한 곳

kubeadm config images pull --cri-socket /run/containerd/containerd.sock --v=5

3. 오류 코드 

output: time="2023-10-19T05:11:17Z" level=fatal msg="validate service connection: CRI v1 image API is not implemented for endpoint \"unix:///run/containerd/containerd.sock\": rpc error: code = Unimplemented desc = unknown service runtime.v1.ImageService"
, error
k8s.io/kubernetes/cmd/kubeadm/app/util/runtime.(*CRIRuntime).PullImage
	cmd/kubeadm/app/util/runtime/runtime.go:139
k8s.io/kubernetes/cmd/kubeadm/app/cmd.PullControlPlaneImages
	cmd/kubeadm/app/cmd/config.go:390
k8s.io/kubernetes/cmd/kubeadm/app/cmd.newCmdConfigImagesPull.func1
	cmd/kubeadm/app/cmd/config.go:376
github.com/spf13/cobra.(*Command).execute
	vendor/github.com/spf13/cobra/command.go:940
github.com/spf13/cobra.(*Command).ExecuteC
	vendor/github.com/spf13/cobra/command.go:1068
github.com/spf13/cobra.(*Command).Execute
	vendor/github.com/spf13/cobra/command.go:992
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:1598
failed to pull image "registry.k8s.io/kube-apiserver:v1.28.2"
k8s.io/kubernetes/cmd/kubeadm/app/cmd.PullControlPlaneImages
	cmd/kubeadm/app/cmd/config.go:391
k8s.io/kubernetes/cmd/kubeadm/app/cmd.newCmdConfigImagesPull.func1
	cmd/kubeadm/app/cmd/config.go:376
github.com/spf13/cobra.(*Command).execute
	vendor/github.com/spf13/cobra/command.go:940
github.com/spf13/cobra.(*Command).ExecuteC
	vendor/github.com/spf13/cobra/command.go:1068
github.com/spf13/cobra.(*Command).Execute
	vendor/github.com/spf13/cobra/command.go:992
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:1598

4. 원인

Containerd는 서비스를 활성화하고 구성해야 하며, CRI v1 이미지 서비스가 사용 가능하도록 설정되어야 하는데 설정을 하지 않았다..

5. 해결

/etc/containerd/config.toml 파일을 열고

disabled_plugins = [] 만 남기고 다지웠다..

6. 참고

https://github.com/containerd/containerd/discussions/8706