kubekey icon indicating copy to clipboard operation
kubekey copied to clipboard

arm64 crictl architecture and containerd wrong

Open sundayhk opened this issue 2 months ago β€’ 1 comments

What is version of KubeKey has the issue?

kk version: &version.Info{Major:"3", Minor:"1", GitVersion:"v3.1.11-dirty", GitCommit:"f9d473060ec34cd8ffe5a87f2eceb1dead397f5c", GitTreeState:"dirty", BuildDate:"2025-08-18T17:06:14Z", GoVersion:"go1.23.2", Compiler:"gc", Platform:"linux/arm64"}

What is your os environment?

Ubuntu 22.04 ARM64

KubeKey config file

apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
  name: sample
spec:
  hosts:
  - {name: arm-us1, address: 10.0.0.28, internalAddress: 10.0.0.28, port: 22, user: kube, password: "kube@password", privateKeyPath: "~/.ssh/kube", arch: arm64}
  - {name: arm-us2, address: 10.0.0.29, internalAddress: 10.0.0.29, port: 22, user: kube, password: "kube@password", privateKeyPath: "~/.ssh/kube", arch: arm64}
  roleGroups:
    etcd:
    - arm-us1
    control-plane:
    - arm-us1
    worker:
    - arm-us1
    - arm-us2
  controlPlaneEndpoint:
    ## Internal loadbalancer for apiservers
    # internalLoadbalancer: haproxy

    domain: lb.kubesphere.local
    address: ""
    port: 6443
  kubernetes:
    version: v1.32.8
    clusterName: cluster.local
    autoRenewCerts: true
    containerManager: containerd
  etcd:
    type: kubekey
  network:
    plugin: calico
    kubePodsCIDR: 10.230.28.0/18
    kubeServiceCIDR: 10.230.29.0/18
    ## multus support. https://github.com/k8snetworkplumbingwg/multus-cni
    multusCNI:
      enabled: false
  registry:
    privateRegistry: ""
    namespaceOverride: ""
    registryMirrors: []
    insecureRegistries: []
  addons: []

A clear and concise description of what happend.

14:27:53 CST [PullModule] Start to pull images on all nodes
14:27:53 CST message: [arm-us2]
downloading image: kubesphere/pause:3.9
14:27:53 CST message: [arm-us1]
downloading image: kubesphere/pause:3.9
14:27:53 CST message: [arm-us1]
pull image failed: Failed to exec command: sudo -E /bin/bash -c "env PATH=$PATH crictl pull kubesphere/pause:3.9"
FATA[0000] validate service connection: validate CRI v1 image API for endpoint "unix:///run/containerd/containerd.sock": rpc error: code = Unimplemented desc = unknown service runtime.v1.ImageService: Process exited with status 1
14:27:53 CST retry: [arm-us1]
14:27:53 CST message: [arm-us2]
pull image failed: Failed to exec command: sudo -E /bin/bash -c "env PATH=$PATH crictl pull kubesphere/pause:3.9"
FATA[0000] validate service connection: validate CRI v1 image API for endpoint "unix:///run/containerd/containerd.sock": rpc error: code = Unimplemented desc = unknown service runtime.v1.ImageService: Process exited with status 1
14:27:53 CST retry: [arm-us2]
14:27:58 CST message: [arm-us1]
downloading image: kubesphere/pause:3.9
14:27:58 CST message: [arm-us2]
downloading image: kubesphere/pause:3.9
14:27:58 CST message: [arm-us2]

solve: all nodes excute

wget https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.34.0/crictl-v1.34.0-linux-arm64.tar.gz
tar xf crictl-v1.34.0-linux-arm64.tar.gz
mv crictl /usr/bin/crictl
pull image failed: Failed to exec command: sudo -E /bin/bash -c "env PATH=$PATH crictl pull kubesphere/pause:3.9"
FATA[0000] validate service connection: validate CRI v1 image API for endpoint "unix:///run/containerd/containerd.sock": rpc error: code = Unimplemented desc = unknown service runtime.v1.ImageService: Process exited with status 1
14:29:57 CST message: [arm-us2]
pull image failed: Failed to exec command: sudo -E /bin/bash -c "env PATH=$PATH crictl pull kubesphere/pause:3.9"
FATA[0000] validate service connection: validate CRI v1 image API for endpoint "unix:///run/containerd/containerd.sock": rpc error: code = Unimplemented desc = unknown service runtime.v1.ImageService: Process exited with status 1
14:29:57 CST failed: [arm-us1]
14:29:57 CST failed: [arm-us2]
error: Pipeline[CreateClusterPipeline] execute failed: Module[PullModule] exec failed:
failed: [arm-us1] [PullImages] exec failed after 3 retries: pull image failed: Failed to exec command: sudo -E /bin/bash -c "env PATH=$PATH crictl pull kubesphere/pause:3.9"
FATA[0000] validate service connection: validate CRI v1 image API for endpoint "unix:///run/containerd/containerd.sock": rpc error: code = Unimplemented desc = unknown service runtime.v1.ImageService: Process exited with status 1
failed: [arm-us2] [PullImages] exec failed after 3 retries: pull image failed: Failed to exec command: sudo -E /bin/bash -c "env PATH=$PATH crictl pull kubesphere/pause:3.9"
FATA[0000] validate service connection: validate CRI v1 image API for endpoint "unix:///run/containerd/containerd.sock": rpc error: code = Unimplemented desc = unknown service runtime.v1.ImageService: Process exited with status 1

solve: all nodes excute

vim /etc/containerd/config.toml 

#disabled_plugins = ["cri"]
disabled_plugins = []

systemctl restart containerd

# test
$ crictl pull kubesphere/pause:3.9

### Relevant log output

```shell

Additional information

No response

sundayhk avatar Sep 30 '25 06:09 sundayhk

Thanks for the feedback. The reason might be that the version of containerd you installed is too low to support the Kubernetes version you’re using. You can uninstall the old version of containerd and use Kubekey to install containerd instead.

redscholar avatar Oct 09 '25 02:10 redscholar