MicroK8s 容器无法启动。所有 pods 卡在 "ContainerCreating" 状态。 Ubuntu 20.10 元 4
MicroK8s containers unable to start. All pods stuck on "ContainerCreating" state. Ubuntu 20.10 RP4
我一直在谷歌搜索并通过日志尝试解决这个问题,但我似乎无法让 microk8s 在我的 Raspberry Pi、运行 Ubuntu 20.10 上工作
i snap install v1.15
sudo snap install microk8s --classic --channel=1.15/stable
我可以确认 microk8s.status returns 是 运行。
kubectl 获取节点 --namespace kube-system returns:
NAME STATUS ROLES AGE VERSION
mydnsname Ready <none> 22h v1.15.11
我已经安装了以下启用:仪表板
我安装了仪表板 dns ingress - 但出现了同样的问题。
kubectl get all --all-namespaces returns
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system pod/heapster-v1.5.2-c4dcfd9f8-kl5g5 0/4 ContainerCreating 0 68s
kube-system pod/kubernetes-dashboard-c775bf88b-pmhz6 0/1 ContainerCreating 0 68s
kube-system pod/monitoring-influxdb-grafana-v4-6f74479987-rd5ck 0/2 ContainerCreating 0 68s
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default service/kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 18h
kube-system service/heapster ClusterIP 10.152.183.195 <none> 80/TCP 68s
kube-system service/kubernetes-dashboard ClusterIP 10.152.183.171 <none> 443/TCP 68s
kube-system service/monitoring-grafana ClusterIP 10.152.183.120 <none> 80/TCP 68s
kube-system service/monitoring-influxdb ClusterIP 10.152.183.175 <none> 8083/TCP,8086/TCP 68s
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
kube-system deployment.apps/heapster-v1.5.2 0/1 1 0 68s
kube-system deployment.apps/kubernetes-dashboard 0/1 1 0 68s
kube-system deployment.apps/monitoring-influxdb-grafana-v4 0/1 1 0 68s
NAMESPACE NAME DESIRED CURRENT READY AGE
kube-system replicaset.apps/heapster-v1.5.2-c4dcfd9f8 1 1 0 68s
kube-system replicaset.apps/kubernetes-dashboard-c775bf88b 1 1 0 68s
kube-system replicaset.apps/monitoring-influxdb-grafana-v4-6f74479987 1 1 0 68s
kubectl describe pods kubernetes-dashboard-c775bf88b-pmhz6 --namespace kube-system returns
Warning FailedCreatePodSandBox 2m26s (x3 over 2m54s) kubelet, mydnsname (combined from similar events): Failed create pod sandbox: rpc error: code = Unknown desc = failed to start sandbox container: failed to create containerd task: failed to mount rootfs component &{overlay overlay [workdir=/var/snap/microk8s/common/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/1386/work upperdir=/var/snap/microk8s/common/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/1386/fs lowerdir=/var/snap/microk8s/common/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/2/fs]}: invalid argument: unknown
Warning MissingClusterDNS 2m14s (x13 over 4m58s) kubelet, mydnsname pod: "kubernetes-dashboard-c775bf88b-pmhz6_kube-system(777df7aa-d4de-40f0-8275-70b36d2e5029)". kubelet does not have ClusterDNS IP configured and cannot create Pod using "ClusterFirst" policy. Falling back to "Default" policy.
我已经检查过,我没有使用 ZFS 作为我的主分区的文件系统,我使用的是 overlayfs
df -Th
Filesystem Type Size Used Avail Use% Mounted on
none overlay 59G 21G 36G 37% /
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 743M 1.2M 742M 1% /run
tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
tmpfs tmpfs 372M 104K 372M 1% /run/user/1000
考虑到 containerd 与 overlayfs 没有任何问题,因此我不确定为什么 containerd 无法挂载或有问题。
已尝试 microk8s.reset 并卸载并重新安装,并尝试了几个不同的版本,但仍然无济于事。
非常感谢任何想法或帮助,因为我很想为本地开发人员设置本地 kubernetes!
提前致谢!
发现问题出在 microk8s 上,特别是 containerd 无法使用带覆盖的 squashFS 文件系统。
我使用 SquashFS Ubuntu 安装的原因是我使用 Berryboot 来支持多个 OS 安装。
我切换到支持 ext4 文件系统的 Pinn,它与 containerd 一起工作并重新安装 Ubuntu 20.04.
安装 microk8s 后,节点启动 运行,容器现在全部 运行 正确。
我一直在谷歌搜索并通过日志尝试解决这个问题,但我似乎无法让 microk8s 在我的 Raspberry Pi、运行 Ubuntu 20.10 上工作
i snap install v1.15 sudo snap install microk8s --classic --channel=1.15/stable
我可以确认 microk8s.status returns 是 运行。 kubectl 获取节点 --namespace kube-system returns:
NAME STATUS ROLES AGE VERSION
mydnsname Ready <none> 22h v1.15.11
我已经安装了以下启用:仪表板 我安装了仪表板 dns ingress - 但出现了同样的问题。
kubectl get all --all-namespaces returns
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system pod/heapster-v1.5.2-c4dcfd9f8-kl5g5 0/4 ContainerCreating 0 68s
kube-system pod/kubernetes-dashboard-c775bf88b-pmhz6 0/1 ContainerCreating 0 68s
kube-system pod/monitoring-influxdb-grafana-v4-6f74479987-rd5ck 0/2 ContainerCreating 0 68s
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default service/kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 18h
kube-system service/heapster ClusterIP 10.152.183.195 <none> 80/TCP 68s
kube-system service/kubernetes-dashboard ClusterIP 10.152.183.171 <none> 443/TCP 68s
kube-system service/monitoring-grafana ClusterIP 10.152.183.120 <none> 80/TCP 68s
kube-system service/monitoring-influxdb ClusterIP 10.152.183.175 <none> 8083/TCP,8086/TCP 68s
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
kube-system deployment.apps/heapster-v1.5.2 0/1 1 0 68s
kube-system deployment.apps/kubernetes-dashboard 0/1 1 0 68s
kube-system deployment.apps/monitoring-influxdb-grafana-v4 0/1 1 0 68s
NAMESPACE NAME DESIRED CURRENT READY AGE
kube-system replicaset.apps/heapster-v1.5.2-c4dcfd9f8 1 1 0 68s
kube-system replicaset.apps/kubernetes-dashboard-c775bf88b 1 1 0 68s
kube-system replicaset.apps/monitoring-influxdb-grafana-v4-6f74479987 1 1 0 68s
kubectl describe pods kubernetes-dashboard-c775bf88b-pmhz6 --namespace kube-system returns
Warning FailedCreatePodSandBox 2m26s (x3 over 2m54s) kubelet, mydnsname (combined from similar events): Failed create pod sandbox: rpc error: code = Unknown desc = failed to start sandbox container: failed to create containerd task: failed to mount rootfs component &{overlay overlay [workdir=/var/snap/microk8s/common/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/1386/work upperdir=/var/snap/microk8s/common/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/1386/fs lowerdir=/var/snap/microk8s/common/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/2/fs]}: invalid argument: unknown
Warning MissingClusterDNS 2m14s (x13 over 4m58s) kubelet, mydnsname pod: "kubernetes-dashboard-c775bf88b-pmhz6_kube-system(777df7aa-d4de-40f0-8275-70b36d2e5029)". kubelet does not have ClusterDNS IP configured and cannot create Pod using "ClusterFirst" policy. Falling back to "Default" policy.
我已经检查过,我没有使用 ZFS 作为我的主分区的文件系统,我使用的是 overlayfs df -Th
Filesystem Type Size Used Avail Use% Mounted on
none overlay 59G 21G 36G 37% /
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 743M 1.2M 742M 1% /run
tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
tmpfs tmpfs 372M 104K 372M 1% /run/user/1000
考虑到 containerd 与 overlayfs 没有任何问题,因此我不确定为什么 containerd 无法挂载或有问题。
已尝试 microk8s.reset 并卸载并重新安装,并尝试了几个不同的版本,但仍然无济于事。
非常感谢任何想法或帮助,因为我很想为本地开发人员设置本地 kubernetes!
提前致谢!
发现问题出在 microk8s 上,特别是 containerd 无法使用带覆盖的 squashFS 文件系统。
我使用 SquashFS Ubuntu 安装的原因是我使用 Berryboot 来支持多个 OS 安装。
我切换到支持 ext4 文件系统的 Pinn,它与 containerd 一起工作并重新安装 Ubuntu 20.04.
安装 microk8s 后,节点启动 运行,容器现在全部 运行 正确。