2 pod имеет несвязанные немедленные PersistentVolumeClaims - Kubernetes

Я пытаюсь установить PersistentVolumeClaims на свои поды. Теперь проблема в том, что когда deployment успешно, модули находятся в состоянии pending. Когда я пытаюсь описать стручки, я получаю сообщение об ошибке, почему они не вращаются, как показано ниже:

Предупреждение FailedScheduling 20s (x3 over 22s) Доступны узлы default-scheduler 0/3: 1 узел (ы) испортил {node-role.kubernetes.io/master:}, что модуль не выдержал, 2 модуля не привязаны немедленные 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, я получаю следующий pending статус

my-pvc В ожидании 9 мин. 54 сек.

Может кто подскажет, где я делаю не так?


person Jananath Banuka    schedule 13.10.2020    source источник


Ответы (1)


Как описано в ответ на pod имеет несвязанные PersistentVolumeClaims, если вы используете PersistentVolumeClaim, вам обычно нужен поставщик тома для динамической подготовки томов. Обычно это есть у крупных облачных провайдеров, а также у Minikube есть тот, который можно включить.

Если в вашем кластере нет инициатора тома, вам нужно создать PersistentVolume и, возможно, StorageClass, и объявите, как использовать вашу систему хранения.

описывает, как создать PersistentVolume с hostPath, который может быть полезен для обучения или разработки, но обычно не используется в производственных приложениях.

person Jonas    schedule 13.10.2020