【问题标题】:How to use existing PVC in statefulSet definition in Kubernetes?如何在 Kubernetes 的 statefulSet 定义中使用现有的 PVC?
【发布时间】:2021-09-26 03:58:15
【问题描述】:

我已经应用了以下pvc yaml。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: ebs-claim
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: ebs-sc
  resources:
    requests:
      storage: 4Gi


我现在希望我的 statefulset 使用我创建的 PVC。相反,它正在创建不同存储类的新 PVC。

apiVersion: v1
kind: statefulset
    metadata:
      name: example
    spec:
        # Name for the service object created by the operator
      serviceName: mongodb-service 
      selector: {}
        # Specifies a size for the data volume different from the default 10Gi
      volumeClaimTemplates:
        - metadata:
            name: ebs-claim
      template:
        spec:
          nodeSelector:
            eks.amazonaws.com/nodegroup: managed-ng-private-1

如何让我的 statefulset 使用现有的 PVC 而不是创建新的?

【问题讨论】:

  • 之前创建的 PV 是否处于 Released 状态?

标签: amazon-web-services kubernetes amazon-eks amazon-ebs


【解决方案1】:

在 pod 规范模板的 volumes 部分中像往常一样指定它。但是您不会得到为每个副本创建新 PVC 的特殊行为,因为这需要创建新的。

【讨论】:

    【解决方案2】:

    有状态集定义缺少卷。试试下面的 yaml 并检查一下。

    apiVersion: v1
    kind: statefulset
    metadata:
        name: example
    spec:
        # Name for the service object created by the operator
      serviceName: mongodb-service 
      selector: {}
        # Specifies a size for the data volume different from the default 10Gi
      volumes:
        - name: ebs-vol
          persistentVolumeClaim:
          claimName: PersistentVolumeClaim
      volumeClaimTemplates:
        - metadata:
            name: ebs-claim
      template:
        spec:
          nodeSelector:
            eks.amazonaws.com/nodegroup: managed-ng-private-1
    

    【讨论】:

    • 不,这将创建一个名为 ebs-claim-0 的新 PVC。
    猜你喜欢
    • 2021-06-08
    • 1970-01-01
    • 2019-05-24
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    • 2021-02-25
    • 1970-01-01
    相关资源
    最近更新 更多