【问题标题】:Microk8s fails to AUTOMATICALLY mount pod on LonghornMicrok8s 无法在 Longhorn 上自动安装 pod
【发布时间】:2021-12-09 07:23:16
【问题描述】:

我在 Ubuntu 20.04 上设置了单节点 kubernetes。我正在为我的单节点集群使用 microk8s 和 longhorn 存储。我通过 Lens IDE 使用 Helm 安装软件包。我已经按照各自的指南配置了所有内容,但是每当我安装需要持久性的软件包(例如 Mariadb 或 Wordpress)时,都会发生以下情况:

  • pv 和 pvc 成功创建和绑定
  • pod创建失败,报如下错误
MountVolume.SetUp failed for volume "pvc-fdada93c-c4af-4916-942f-abf9897feaf9" : applyFSGroup failed for vol pvc-fdada93c-c4af-4916-942f-abf9897feaf9: lstat /var/snap/microk8s/common/var/lib/kubelet/pods/f69173e1-cd98-4f86-9e52-edf62fa723da/volumes/kubernetes.io~csi/pvc-fdada93c-c4af-4916-942f-abf9897feaf9/mount: no such file or directory
  • 当我使用以下命令手动创建目录时,pod 将成功启动
mkdir -p /var/snap/microk8s/common/var/lib/kubelet/pods/f69173e1-cd98-4f86-9e52-edf62fa723da/volumes/kubernetes.io~csi/pvc-fdada93c-c4af-4916-942f-abf9897feaf9/mount
  • 如果我重新启动服务器,该问题将重复出现

问题:当我从 Helm 安装包时,如何让 Pod 自动挂载。我已经在使用相同软件的类似单节点集群上看到过这种情况。

注意:nfs-common 和 open-iscsi 都在运行

【问题讨论】:

    标签: kubernetes kubernetes-helm microk8s longhorn


    【解决方案1】:

    我能够找出问题所在。

    问题实际上并不是 Longhorn 本身造成的。这是由于 CoreDNS。

    由于防火墙限制,CoreDNS 无法解析内部 kubernetes DNS,尤其是longhorn-backend

    如果 UI 和驱动程序无法访问 longhorn-backend,它们将永远无法启动。修复 CoreDNS 问题导致 longhorn 服务运行良好,我的 PVC 和 PV 也按预期工作。

    解决步骤如下

    1. 检查 coredns pod 是否有错误

      kubectl 记录 coredns-7f9c69c78c-7dsjg -n kube-system

    除了 coredns 版本之外的任何输出都意味着您需要解决显示的错误

    对我来说,这是通过禁用防火墙并在我的节点的 /etc/resolv.conf 文件中添加 8.8.8.8 来完成的

    1. 一旦解决,您可以等待 coredns 解析内部 DNS 或使用以下命令重新启动它

      kubectl rollout restart 部署/coredns -n kube-system

    之后一切正常!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-16
      • 1970-01-01
      • 2020-09-23
      • 1970-01-01
      • 2022-07-15
      • 2018-12-27
      • 1970-01-01
      • 2023-02-03
      相关资源
      最近更新 更多