微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Mongo Operator 在 EKS/EFS 中部署 MongoDB

如何解决使用 Mongo Operator 在 EKS/EFS 中部署 MongoDB

我正在尝试在 AWS EKS 上使用 kubernetes 操作员部署 mongodb,并为存储类使用 EFS。只需按照此处的文档示例进行操作:

https://github.com/mongodb/mongodb-kubernetes-operator

我不明白如何正确定义 PVC 命名。我已经浏览了 Github 问题和 Stack Overflow。只是没有找到解决看似简单的问题的示例。


apiVersion: mongodb.com/v1
kind: MongoDB
Metadata:
  name: mongodb
spec:
  members: 1
  type: replicaset
  version: "4.2.6"
  security:
    authentication:
      modes: ["SCRAM"]
  users:
    - name: my-user
      db: admin
      passwordSecretRef: # a reference to the secret that will be used to generate the user's password
        name: my-user-password
      roles:
        - name: clusteradmin
          db: admin
        - name: userAdminAnyDatabase
          db: admin
      scramCredentialsSecretName: my-scram
  statefulSet:
    spec:
     volumeClaimTemplates:
       - Metadata:
         name: data-volume
         spec:
          accessModes: [ "ReadWriteOnce" ]
          resources:
            requests:
              storage: 1Gi
            storageClassName: "efs-sc"

事件:

create Pod mongodb-0 in StatefulSet mongodb Failed error: Failed to create PVC -mongodb-0: PersistentVolumeClaim "-mongodb-0" is invalid: Metadata.name: Invalid value: "-mongodb-0": a DNS-1123 subdomain must consist of lower case alphanumeric characters,'-' or '.',and must start and end with an alphanumeric character (e.g. 'example.com',regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*') 

解决方法

我复制了这个错误,我在你的 yaml 文件中发现了一个错误。 voluemClaimTemplates 名称中缺少缩进。

这是您的 yaml 文件:

     volumeClaimTemplates:
       - metadata:
    ?   name: data-volume
         spec:
          accessModes: [ "ReadWriteOnce" ]
          resources:
            requests:
              storage: 1Gi
            storageClassName: "efs-sc"

这是带有固定缩进的正确部分:

     volumeClaimTemplates:
       - metadata:
    ?     name: data-volume
         spec:
          accessModes: [ "ReadWriteOnce" ]
          resources:
            requests:
              storage: 1Gi
            storageClassName: "efs-sc"

似乎由于此错误,操作员无法正确获取名称,他正尝试使用其默认模板创建卷。您可以使用 k get sts mongodb -oyaml 自行验证:

  volumeClaimTemplates:
  - apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
      volumeMode: Filesystem
  - apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: data-volume
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 10G
      volumeMode: Filesystem

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。