【问题标题】:pod has unbound immediate PersistentVolumeClaims ops managerpod 具有未绑定的即时 PersistentVolumeClaims 操作经理
【发布时间】:2020-12-19 23:22:17
【问题描述】:

编辑:见下文

我是新手,正在尝试使用 kubeadm 构建具有 2 台物理机的本地集群。我正在按照https://github.com/mongodb/mongodb-enterprise-kubernetes 的步骤进行操作,一切正常。起初我正在安装 kubernetes 操作员,但是当我尝试安装操作管理器时,我得到: 0/2 个节点可用:2 个 pod 具有未绑定的即时 PersistentVolumeClaims 操作管理器。 我用来安装 ops manager 的 yaml 是:

  ---
    apiVersion: mongodb.com/v1
    kind: MongoDBOpsManager
    metadata:
    
      name: opsmanager1
    
    spec:
    
      replicas: 2
    
      version: 4.2.0
    
      adminCredentials: mongo-db-admin1 # Should match metadata.name
    
                                               # in the Kubernetes secret
    
                                               # for the admin user
    
      externalConnectivity:
    
        type: NodePort
    
    
    
      applicationDatabase:
    
        members: 3
    
        version: 4.4.0
    
        persistent: true
    
        podSpec:
       
           persistence:
    
             single: 
    
               storage: 1Gi

我无法弄清楚问题是什么。我处于测试阶段,我的目标是制作一个可扩展的 mongo 数据库。提前致谢

编辑:我做了一些更改。我创建了这样的存储类:

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
    
      name: localstorage
    
    provisioner: kubernetes.io/no-provisioner
    volumeBindingMode: Immediate
    reclaimPolicy: Delete
    allowVolumeExpansion: True
    
    ---
    kind: PersistentVolume
    apiVersion: v1
    metadata:
      name: mongo-01
      labels:
        type: local
    spec:
      storageClassName: localstorage
      capacity:
        storage: 2Gi
      accessModes:
        - ReadWriteOnce
      hostPath:
        path: "/home/master/mongo01"
    
    ---
    kind: PersistentVolume
    apiVersion: v1
    metadata:
      name: mongo-02
      labels:
        type: local
    spec:
      storageClassName: localstorage
      capacity:
        storage: 2Gi
      accessModes:
        - ReadWriteOnce
      hostPath:
        path: "/home/master/mongo02"

现在我用于操作管理器的 yaml 是:

apiVersion: mongodb.com/v1
kind: MongoDBOpsManager
metadata:
 name: ops-manager-localmode
spec:
 replicas: 2
 version: 4.2.12
 adminCredentials: mongo-db-admin1
 externalConnectivity:
    type: NodePort
 
 statefulSet:
   spec:
     # the Persistent Volume Claim will be created for each Ops Manager Pod
     volumeClaimTemplates:
       - metadata:
           name: mongodb-versions
         spec:
           storageClassName: localstorage
           accessModes: [ "ReadWriteOnce" ]
           resources:
             requests:
               storage: 2Gi
     template:
       spec:
         containers:
           - name: mongodb-ops-manager
             volumeMounts:
               - name: mongodb-versions
                 # this is the directory in each Pod where all MongoDB
                 # archives must be put
                 mountPath: /mongodb-ops-manager/mongodb-releases

 backup:
   enabled: false

 applicationDatabase:
   members: 3
   version: 4.4.0

   persistent: true

但我收到一个新错误:Warning ProvisioningFailed 44s (x26 over 6m53s) persistentvolume-controller no volume plugin match name: kubernetes.io/no-provisioner

【问题讨论】:

  • kubectl get pv,pvc -n <namespace> 的输出添加到您的问题中。这个错误(警告)来自哪里?

标签: mongodb kubernetes kubeadm


【解决方案1】:

乍一看,您似乎没有任何卷可以在您的集群上创建 PVC。见https://v1-15.docs.kubernetes.io/docs/concepts/storage/volumes/ 您的应用需要创建一个持久卷,但您的集群不知道该怎么做。

【讨论】:

  • 正如您在我的代码中看到的那样,我已经手动创建了两个持久卷。我认为问题出在 ops manager 的 volumeClaimTemplates,但我不知道为什么
猜你喜欢
  • 2022-10-18
  • 2020-12-27
  • 1970-01-01
  • 2021-01-06
  • 2019-12-07
  • 2019-03-11
  • 2020-11-03
  • 2021-04-07
  • 2020-08-31
相关资源
最近更新 更多