【问题标题】:deploy MongoDB in EKS/EFS with Mongo Operator使用 Mongo Operator 在 EKS/EFS 中部署 MongoDB
【发布时间】:2021-04-16 20:17:00
【问题描述】:

我正在尝试在 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])?)*') 

【问题讨论】:

  • Efs 不适合需要高 iops 的 dbs。
  • 这个db主要用来存储session数据。我们预计不需要高 IOPS

标签: mongodb kubernetes amazon-eks amazon-efs


【解决方案1】:

我复制了这个错误,并在您的 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

【讨论】:

    猜你喜欢
    • 2020-10-08
    • 2021-12-14
    • 2020-05-10
    • 1970-01-01
    • 2021-09-02
    • 2011-06-05
    • 2021-07-18
    • 1970-01-01
    • 2022-01-16
    相关资源
    最近更新 更多