Welcome to the Linux Foundation Forum!

LAB 3.6 master node not ready

Hello,
I've been following steps in containerd-setup.txt
However, the master node never gets into ready state. Notice the CONTAINER-RUNTIME field.

  1. $ kubectl get node k8s-single -o wide
  2. NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
  3. k8s-single NotReady control-plane,master 19m v1.23.1 10.166.0.3 <none> Ubuntu 20.04.4 LTS 5.15.0-1016-gcp containerd://Unknown
  1. $ kubectl describe nodes k8s-single
  2. Name: k8s-single
  3. Roles: control-plane,master
  4. Labels: beta.kubernetes.io/arch=amd64
  5. beta.kubernetes.io/os=linux
  6. kubernetes.io/arch=amd64
  7. kubernetes.io/hostname=k8s-single
  8. kubernetes.io/os=linux
  9. node-role.kubernetes.io/control-plane=
  10. node-role.kubernetes.io/master=
  11. node.kubernetes.io/exclude-from-external-load-balancers=
  12. Annotations: kubeadm.alpha.kubernetes.io/cri-socket: /var/run/containerd/containerd.sock
  13. node.alpha.kubernetes.io/ttl: 0
  14. projectcalico.org/IPv4Address: 10.166.0.3/32
  15. projectcalico.org/IPv4IPIPTunnelAddr: 192.168.100.0
  16. volumes.kubernetes.io/controller-managed-attach-detach: true
  17. CreationTimestamp: Mon, 03 Oct 2022 11:30:17 +0000
  18. Taints: node.kubernetes.io/not-ready:NoSchedule
  19. Unschedulable: false
  20. Lease:
  21. HolderIdentity: k8s-single
  22. AcquireTime: <unset>
  23. RenewTime: Mon, 03 Oct 2022 11:50:50 +0000
  24. Conditions:
  25. Type Status LastHeartbeatTime LastTransitionTime Reason Message
  26. ---- ------ ----------------- ------------------ ------ -------
  27. NetworkUnavailable False Mon, 03 Oct 2022 11:31:14 +0000 Mon, 03 Oct 2022 11:31:14 +0000 CalicoIsUp Calico is running on this node
  28. MemoryPressure False Mon, 03 Oct 2022 11:50:50 +0000 Mon, 03 Oct 2022 11:30:17 +0000 KubeletHasSufficientMemory kubelet has sufficient memory available
  29. DiskPressure False Mon, 03 Oct 2022 11:50:50 +0000 Mon, 03 Oct 2022 11:30:17 +0000 KubeletHasNoDiskPressure kubelet has no disk pressure
  30. PIDPressure False Mon, 03 Oct 2022 11:50:50 +0000 Mon, 03 Oct 2022 11:30:17 +0000 KubeletHasSufficientPID kubelet has sufficient PID available
  31. Ready False Mon, 03 Oct 2022 11:50:50 +0000 Mon, 03 Oct 2022 11:45:02 +0000 KubeletNotReady [container runtime is down, PLEG is not healthy: pleg was last seen active 6m16.582796441s ago; threshold is 3m0s]
  32. Addresses:
  33. InternalIP: 10.166.0.3
  34. Hostname: k8s-single
  35. Capacity:
  36. cpu: 2
  37. ephemeral-storage: 20134592Ki
  38. hugepages-1Gi: 0
  39. hugepages-2Mi: 0
  40. memory: 7621368Ki
  41. pods: 110
  42. Allocatable:
  43. cpu: 2
  44. ephemeral-storage: 18556039957
  45. hugepages-1Gi: 0
  46. hugepages-2Mi: 0
  47. memory: 7518968Ki
  48. pods: 110
  49. System Info:
  50. Machine ID: bbd0e9ce1b4c1a57630559bf544f53af
  51. System UUID: bbd0e9ce-1b4c-1a57-6305-59bf544f53af
  52. Boot ID: a95eb6e2-0c9f-49ce-acc2-60d17c82d9cb
  53. Kernel Version: 5.15.0-1016-gcp
  54. OS Image: Ubuntu 20.04.4 LTS
  55. Operating System: linux
  56. Architecture: amd64
  57. Container Runtime Version: containerd://Unknown
  58. Kubelet Version: v1.23.1
  59. Kube-Proxy Version: v1.23.1
  60. PodCIDR: 192.168.0.0/24
  61. PodCIDRs: 192.168.0.0/24
  62. Non-terminated Pods: (9 in total)
  63. Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits Age
  64. --------- ---- ------------ ---------- --------------- ------------- ---
  65. kube-system calico-kube-controllers-66966888c4-tm7bk 0 (0%) 0 (0%) 0 (0%) 0 (0%) 20m
  66. kube-system calico-node-cqxcn 250m (12%) 0 (0%) 0 (0%) 0 (0%) 20m
  67. kube-system coredns-64897985d-jpnrc 100m (5%) 0 (0%) 70Mi (0%) 170Mi (2%) 20m
  68. kube-system coredns-64897985d-n55jc 100m (5%) 0 (0%) 70Mi (0%) 170Mi (2%) 20m
  69. kube-system etcd-k8s-single 100m (5%) 0 (0%) 100Mi (1%) 0 (0%) 20m
  70. kube-system kube-apiserver-k8s-single 250m (12%) 0 (0%) 0 (0%) 0 (0%) 20m
  71. kube-system kube-controller-manager-k8s-single 200m (10%) 0 (0%) 0 (0%) 0 (0%) 20m
  72. kube-system kube-proxy-79lxk 0 (0%) 0 (0%) 0 (0%) 0 (0%) 20m
  73. kube-system kube-scheduler-k8s-single 100m (5%) 0 (0%) 0 (0%) 0 (0%) 20m
  74. Allocated resources:
  75. (Total limits may be over 100 percent, i.e., overcommitted.)
  76. Resource Requests Limits
  77. -------- -------- ------
  78. cpu 1100m (55%) 0 (0%)
  79. memory 240Mi (3%) 340Mi (4%)
  80. ephemeral-storage 0 (0%) 0 (0%)
  81. hugepages-1Gi 0 (0%) 0 (0%)
  82. hugepages-2Mi 0 (0%) 0 (0%)
  83. Events:
  84. Type Reason Age From Message
  85. ---- ------ ---- ---- -------
  86. Normal Starting 20m kube-proxy
  87. Warning InvalidDiskCapacity 20m kubelet invalid capacity 0 on image filesystem
  88. Normal NodeHasSufficientMemory 20m kubelet Node k8s-single status is now: NodeHasSufficientMemory
  89. Normal NodeHasNoDiskPressure 20m kubelet Node k8s-single status is now: NodeHasNoDiskPressure
  90. Normal NodeHasSufficientPID 20m kubelet Node k8s-single status is now: NodeHasSufficientPID
  91. Normal NodeAllocatableEnforced 20m kubelet Updated Node Allocatable limit across pods
  92. Normal Starting 20m kubelet Starting kubelet.
  93. Normal NodeReady 19m kubelet Node k8s-single status is now: NodeReady
  94. Normal NodeNotReady 5m53s kubelet Node k8s-single status is now: NodeNotReady
  95. Warning ContainerGCFailed 30s (x6 over 5m30s) kubelet rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.RuntimeService
  96. Warning ImageGCFailed 30s kubelet rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.ImageService
  1. sudo crictl ps
  2. FATA[0000] listing containers: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.RuntimeService
  1. sudo systemctl status containerd
  2. ...
  3. Oct 03 11:53:15 k8s-single containerd[527]: time="2022-10-03T11:53:15.891993595Z" level=warning msg="failed to load plugin io.containerd.grpc.v1.cri" error="invalid plugin config: no corresponding runtime configured in `containerd.runtimes` for `containerd` `default_runtime_name = \"runc\""

It seems to be an error with container runtime.

Answers

  • Posts: 115

    It seems that the problem is in containerd-setup.txt
    We intervene on containerd config file two times, and the second time actually overwrites the first config file we created. I don't know if this is intentional (?)

    First:

    1. # Configure containerd to use the runc engins
    2. cat <<EOF | sudo tee /etc/containerd/config.toml
    3. version = 2
    4. #disabled_plugins = ["cri"]
    5. [plugins."io.containerd.runtime.v1.linux"]
    6. shim_debug = true
    7. [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
    8. runtime_type = "io.containerd.runc.v2"
    9. [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runsc]
    10. runtime_type = "io.containerd.runsc.v1"
    11. EOF

    and a bit later:

    1. # Get containerd running, append or create several files.
    2. cat <<EOF | sudo tee /etc/containerd/config.toml
    3. disabled_plugins = ["restart"]
    4. [plugins.linux]
    5. shim_debug = true
    6. [plugins.cri.containerd.runtimes.runsc]
    7. runtime_type = "io.containerd.runsc.v1"
    8. EOF

    Since the second section's comment says "# Get containerd running, append or create several files", I thought that -a parameter has been forgotten for tee command (in order to append the new content to existing file instead of overwriting it)

    However, appending doesn't resolve the problem, but completely omitting the Get containerd running part does...

    What is Get containerd running part supposed to do? Is it OK omitting it?

  • Posts: 2,434

    Hi @k0dard,

    The issue with containerd-setup.txt file was discussed in an earlier discussion thread.

    Regards,
    -Chris

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Categories

Upcoming Training