首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes nfs-subdir- ContainerCreating中的外部提供程序/无法附加或挂载卷:卸载volumes=[nfs-client-root]

Kubernetes nfs-subdir- ContainerCreating中的外部提供程序/无法附加或挂载卷:卸载volumes=[nfs-client-root]
EN

Stack Overflow用户
提问于 2022-04-26 07:56:48
回答 1查看 1.7K关注 0票数 4

我正在尝试安装一个nfs客户端提供程序并使用它运行一个mongdb。不幸的是,nfs-client-provisioner挂在ContainerCreating中,并表示“警告FailedMount 3m35s (x13超过37m) kubelet无法附加或挂载卷:卸载卷=nfs-客户端-根,未附加卷=nfs-客户端-根库-api-访问-lr9tl:超时等待条件”。

  • nfs服务器配置在同一台VPS机器上(Debian 10)。
  • i可以从第二个带debian 10的vps在nfs服务器上挂载和写入文件。
  • 是用K0s
  • 安装的集群,在舵图和手动安装中有错误。

>

有关更多信息,请参见下面的任何帮助: apechiatet1:

舵机版本:

代码语言:javascript
复制
version.BuildInfo{Version:"v3.8.2", GitCommit:"6e3701edea09e5d55a8ca2aae03a68917630e91b", GitTreeState:"clean", GoVersion:"go1.17.5"}

Kubernetes版本:

代码语言:javascript
复制
Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.6", GitCommit:"ad3338546da947756e8a88aa6822e9c11e7eac22", GitTreeState:"clean", BuildDate:"2022-04-14T08:49:13Z", GoVersion:"go1.17.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.5+k0s", GitCommit:"5ab78974affb1a76f1e5687aaa8b02aeac4380b8", GitTreeState:"clean", BuildDate:"2022-03-24T22:59:27Z", GoVersion:"go1.17.8", Compiler:"gc", Platform:"linux/amd64"}

k0s版本: v1.23.5+k0s.0工作人员添加:

代码语言:javascript
复制
token=$(k0s token create --role=worker)
docker run -d --name k0s-worker1 --hostname k0s-worker1 --privileged -v /var/lib/k0s docker.io/k0sproject/k0s:latest k0s worker $token

kubectl获取节点

代码语言:javascript
复制
NAME                   STATUS   ROLES           AGE   VERSION
k0s-worker9            Ready    <none>          42m   v1.23.5+k0s
v2202204173709187201   Ready    control-plane   43m   v1.23.5+k0s

库贝特

代码语言:javascript
复制
NAME                  PROVISIONER                                   RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
managed-nfs-storage   k8s-sigs.io/nfs-subdir-external-provisioner   Delete          Immediate           false                  40m

/完全性/出口

代码语言:javascript
复制
/data/nfs-storage *(rw,sync,no_root_squash,no_subtree_check,insecure)

使用sudo k0s kubectl描述pod client-provisioner-6889579fdb-t7j74的输出

代码语言:javascript
复制
Name:           nfs-client-provisioner-6889579fdb-t7j74
Namespace:      default
Priority:       0
Node:           k0s-worker9/172.17.0.2
Start Time:     Tue, 26 Apr 2022 08:45:49 +0200
Labels:         app=nfs-client-provisioner
                pod-template-hash=6889579fdb
Annotations:    kubernetes.io/psp: 00-k0s-privileged
Status:         Pending
IP:
IPs:            <none>
Controlled By:  ReplicaSet/nfs-client-provisioner-6889579fdb
Containers:
  nfs-client-provisioner:
    Container ID:
    Image:          gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner:v4.0.1
    Image ID:
    Port:           <none>
    Host Port:      <none>
    State:          Waiting
      Reason:       ContainerCreating
    Ready:          False
    Restart Count:  0
    Environment:
      PROVISIONER_NAME:  k8s-sigs.io/nfs-subdir-external-provisioner
      NFS_SERVER:        47.122.181.39
      NFS_PATH:          /data/nfs-storage
    Mounts:
      /persistentvolumes from nfs-client-root (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-lr9tl (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  nfs-client-root:
    Type:      NFS (an NFS mount that lasts the lifetime of a pod)
    Server:    47.122.181.39
    Path:      /data/nfs-storage
    ReadOnly:  false
  kube-api-access-lr9tl:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason       Age                  From               Message
  ----     ------       ----                 ----               -------
  Normal   Scheduled    18m                  default-scheduler  Successfully assigned default/nfs-client-provisioner-6889579fdb-t7j74 to k0s-worker9
  Warning  FailedMount  2m42s (x6 over 16m)  kubelet            Unable to attach or mount volumes: unmounted volumes=[nfs-client-root], unattached volumes=[nfs-client-root kube-api-access-lr9tl]: timed out waiting for the condition
  Warning  FailedMount  24s (x2 over 7m14s)  kubelet            Unable to attach or mount volumes: unmounted volumes=[nfs-client-root], unattached volumes=[kube-api-access-lr9tl nfs-client-root]: timed out waiting for the condition

使用helm的命令:

代码语言:javascript
复制
 helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
    --set nfs.server=47.122.181.39 \
    --set nfs.path=/data/nfs-storage

无舵:来自https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/tree/v4.0.2/deploy

代码语言:javascript
复制
kubectl create -f rbac.yaml
kubectl create -f class.yaml
kubectl create -f deployment.yaml

class.yaml

代码语言:javascript
复制
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: managed-nfs-storage
provisioner: k8s-sigs.io/nfs-subdir-external-provisioner # or choose another name, must match deployment's env PROVISIONER_NAME'
parameters:
  archiveOnDelete: "false"

deployment.yaml

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nfs-client-provisioner
  labels:
    app: nfs-client-provisioner
  # replace with namespace where provisioner is deployed
  namespace: default
spec:
  replicas: 1
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: nfs-client-provisioner
  template:
    metadata:
      labels:
        app: nfs-client-provisioner
    spec:
      serviceAccountName: nfs-client-provisioner
      containers:
        - name: nfs-client-provisioner
          image: gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner:v4.0.1
          volumeMounts:
            - name: nfs-client-root
              mountPath: /persistentvolumes
          env:
            - name: PROVISIONER_NAME
              value: k8s-sigs.io/nfs-subdir-external-provisioner
            - name: NFS_SERVER
              value: 47.122.181.39
            - name: NFS_PATH
              value: /data/nfs-storage
      volumes:
        - name: nfs-client-root
          nfs:
            server: 47.122.181.39
            path: /data/nfs-storage

K0s集群设置:

代码语言:javascript
复制
sudo curl -sSLf https://get.k0s.sh | sudo sh
sudo k0s install controller --enable-worker
sudo k0s start
sudo cp /var/lib/k0s/pki/admin.conf ~/admin.conf
export KUBECONFIG=~/admin.conf
token=$(k0s token create --role=worker)
docker run -d --name k0s-worker9 --hostname k0s-worker9 --privileged -v /var/lib/k0s docker.io/k0sproject/k0s:latest k0s worker $token
EN

回答 1

Stack Overflow用户

发布于 2022-07-27 09:56:44

你试过:

代码语言:javascript
复制
nfs.mountOptions = {
  nfsvers = 4
}

我还用了这个供给器。它只适用于nfs4。还检查NFS服务器的挂载点(如果它是根/否)。如果您的提供程序已经配置完毕并准备就绪,请尝试重新创建pvc。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72010303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档