2个窗格具有未绑定的立即PersistentVolumeClaims-Kubernetes

问题描述

我正在尝试将PersistentVolumeClaims设置为我的广告连播。现在的问题是,deployment成功时,吊舱处于pending状态。当我尝试描述豆荚时,我得到一个错误,为什么它们不能像下面这样旋转:

警告失败计划20秒(x3超过22秒)的认调度程序0/3个节点可用:1个节点有污点{node-role.kubernetes.io/master:},容器无法容忍,2个pod具有未绑定的立即PersistentVolumeClaims

这是用于创建持久卷并在部署中引用它的yaml

kind: PersistentVolumeClaim
apiVersion: v1
Metadata:
    name: my-pvc
    namespace: mongo  
spec:
    accessModes:
      - ReadWriteOnce
    resources:
        requests:
            storage: 2Gi
---
apiVersion: apps/v1
kind: Deployment
Metadata:
  name: mongodb-deployment
  namespace: mongo  
  labels:
    name: mongodb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mongodb
  template:
    Metadata:
      labels: 
        app: mongodb
    spec:
      containers:
      - name: mongodb
        image: mongo
        ports:
        -  containerPort: 27017
        env: 
        - name: MONGO_INITDB_ROOT_USERNAME
          valueFrom:
            secretKeyRef:
              name: mongodb-secret
              key: mongo-username
        - name: MONGO_INITDB_ROOT_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mongodb-secret
              key: mongo-password
        volumeMounts:
        - name: data  
          mountPath: /data/db
      volumes: 
        - name: data
          persistentVolumeClaim: 
            claimName: my-pvc    
                                  
---
apiVersion: apps/v1
kind: Deployment
Metadata:
  name: mongo-express
  namespace: mongo  
  labels:
    app: mongo-express
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mongo-express
  template:
    Metadata:
      labels:
        app: mongo-express
    spec:
      containers:
      - name: mongo-express
        image: mongo-express
        ports:
        - containerPort: 8081
        env:
        - name: ME_CONfig_MONGODB_SERVER
          valueFrom:
            configMapKeyRef:
              name: mongodb-url
              key: database_url
        - name: ME_CONfig_MONGODB_ADMINUSERNAME
          valueFrom:
            secretKeyRef:
              name: mongodb-secret
              key: mongo-username
        - name: ME_CONfig_MONGODB_ADMINPASSWORD
          valueFrom:
            secretKeyRef:
              name: mongodb-secret
              key: mongo-password
        volumeMounts:
        - name: data  
          mountPath: /data
      volumes: 
        - name: data
          persistentVolumeClaim: 
            claimName: my-pvc    
---
.
.
.

我从上面删除了其他yaml配置,并保留了必要的配置以便于阅读。

当我尝试使用kubectl get pvc -n mongo查看pvc的状态时,我得到以下pending的状态

my-pvc待处理9分54秒

有人可以告诉我我做错了什么吗?

解决方法

answer to pod has unbound PersistentVolumeClaims中所述,如果您使用PersistentVolumeClaim,则通常需要卷供应商来进行动态卷供应。较大的云提供商通常具有此功能,Minikube也具有可以启用的功能。

除非集群中有卷配置程序,否则您需要创建PersistentVolume资源,还可能需要创建StorageClass并声明如何使用存储系统。

Configure a Pod to Use a PersistentVolume for Storage介绍了如何使用PersistentVolume创建hostPath的{​​{1}},这可能对学习或开发很有用,但通常不被应用程序用于生产。