kubernetes 0/1个节点可用:1个单元具有未绑定的立即PersistentVolumeClaims

nue99wik  于 2022-12-11  发布在  Kubernetes
关注(0)|答案(1)|浏览(150)

如文档所述:
对于StatefulSet中定义的每个VolumeClaimTemplate条目,每个Pod都将收到一个PersistentVolumeClaim。在上面的nginx示例中,每个Pod都将收到一个PersistentVolume,其StorageClass为my-storage-class,并具有1 Gib的已配置存储。如果未指定StorageClass,则将使用默认StorageClass。当Pod(重新)调度到节点上时,其volumeMounts将装载与其PersistentVolume声明关联的PersistentVolumes。请注意,当Pod、或StatefulSet。这必须手动完成。
我感兴趣的部分是:If no StorageClassis specified, then the default StorageClass will be used
我创建了一个StatefulSet,如下所示:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  namespace: ches
  name: ches
spec:
  serviceName: ches
  replicas: 1
  selector:
    matchLabels:
      app: ches
  template:
    metadata:
      labels:
        app: ches
    spec:
      serviceAccountName: ches-serviceaccount
      nodeSelector:
        ches-worker: "true"
      volumes:
      - name: data
        hostPath:
          path: /data/test
      containers:
      - name: ches
        image: [here I have the repo]
        imagePullPolicy: Always
        securityContext:
            privileged: true
        args:
        - server
        - --console-address
        - :9011
        - /data
        env:
        - name: MINIO_ACCESS_KEY
          valueFrom:
            secretKeyRef:
              name: ches-keys
              key: access-key
        - name: MINIO_SECRET_KEY
          valueFrom:
            secretKeyRef:
              name: ches-keys
              key: secret-key
        ports:
        - containerPort: 9000
          hostPort: 9011
        resources:
          limits:
            cpu: 100m
            memory: 200Mi
        volumeMounts:
        - name: data
          mountPath: /data
      imagePullSecrets:
        - name: edge-storage-token
  volumeClaimTemplates:
  - metadata:
      name: data
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi

当然,我已经创建了secrets,imagePullSecrets等,并将节点标记为ches-worker。
当我应用yaml文件时,pod处于Pending状态,kubectl describe pod ches-0 -n ches出现以下错误:
警告调度失败6s默认调度程序0/1节点可用:1个单元具有未绑定即时PersistentVolumeClaims。抢占:0/1个节点可用:1抢占对调度没有帮助
我错过了什么吗?

rwqw0loc

rwqw0loc1#

您需要创建PV以绑定PVC。如果您希望从PVC声明自动创建PV,则需要在群集中安装置备程序。
首先创建一个至少有PVC所需空间的PV。然后你可以应用包含PVC声明的部署yaml。

相关问题