kubernetes Kubeadm K8s群集的PVC装载失败

hrirmatl  于 2023-02-07  发布在  Kubernetes
关注(0)|答案(1)|浏览(373)

对于PV,我在每个节点(工作节点和控制平面节点)上使用NFS(网络文件系统)服务器。
NFS安装和配置如下所示;

  • sudo apt-get update && sudo apt-get install nfs-kernel-server
  • sudo mkdir /nfs-share
  • 配置NFS服务器:在每个节点上,将NFS服务器配置为共享在步骤2中创建的目录。通过编辑**/etc/exports**文件并添加以下行来完成此操作:/nfs-share *(rw,sync,no_subtree_check)
  • sudo systemctl start nfs-kernel-server && sudo systemctl status nfs-kernel-server
  • 使用以下内容创建PV:
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteMany
  nfs:
    path: /nfs-share
    server: <NFS-SERVER-IP>

***ip addr show | grep inet

ip addr show | grep inet
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
    inet 10.0.0.179/24 brd 10.0.0.255 scope global enp0s3
    inet6 fe80::17ff:fe01:d25/64 scope link 
    inet 10.244.1.0/32 scope global flannel.1
    inet6 fe80::3057:20ff:fe32:9efc/64 scope link 
    inet 10.244.1.1/24 brd 10.244.1.255 scope global cni0
  • 此输出中NFS服务器的IP地址为**10.0.0.179。这是分配给节点上enp0s3网络接口的IP地址,也是您将用作持久卷YAML文件中<NFS-SERVER-IP>**值的地址。
  • PVC创建人
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi

这是我在所有节点上配置NFS的方式
为了测试PV和PVC,我创建了一个nginx-deployment文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 3
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx
          ports:
            - containerPort: 80
          volumeMounts:
            - name: html
              mountPath: /usr/share/nginx/html
      volumes:
        - name: html
          persistentVolumeClaim:
            claimName: nfs-pvc

我在pod中的容器无法创建,并在描述时给出以下错误

ymdaylpp

ymdaylpp1#

解决方法1:

请检查您是否在安装之前在VM上拍摄了快照。使快照处于活动状态和实时IO可防止对磁盘进行更改(如分离或附加磁盘)。请尝试删除html并保留html-volume,它可能会重新启动。
您可以使用如下命令:kubectl delete volumeattachment [volumeattachment_name]
FailedMount是这种情况下的常见错误,表示Kubernetes无法分离、重新连接和装载卷。发生这种情况时,您可能需要手动分离磁盘或指示Kubernetes Scheduler在特定节点中启动Pod。
有关详细信息,请参阅类似的SOBlog

解决方法2:

FailedMount表示无法将卷装载到特定路径上,这可能是之前错误的结果,因为装载操作发生在连接之后。由于连接操作失败,装载超时到期,这意味着无法执行装载操作。其他原因可能是设备路径不正确或设备装载路径。
有关详细信息,请参阅General discussion和访问模式。

相关问题