【问题标题】:How to save SQL storage data in running preemtible instance?如何在运行的抢占式实例中保存 SQL 存储数据?
【发布时间】:2019-08-18 22:40:09
【问题描述】:

我正在努力降低在 Google Cloud Platform 上运行 Kubernetes 集群的成本。

我将节点池移至抢占式 VM 实例。我有 1 个用于 Postgres 的 pod 和 4 个用于 Web 应用程序的节点。 对于 Postgres,我创建了 StorageClass 来使数据持久化。

令人惊讶的是,也许不是,一天后所有存储数据都被清除了。

如何使 GCP 中的特定节点不可抢占? 或者,您能建议在这种情况下该怎么做吗?

【问题讨论】:

    标签: kubernetes google-cloud-platform persistence devops gcloud


    【解决方案1】:

    我想我找到了解决办法。

    1. 通过以下方式在 gcloud 上创建磁盘:
    gcloud compute disks create --size=10GB postgres-disk
    gcloud compute disks create --size=[SIZE] [NAME]
    
    1. 删除所有 StorageClasses、PV、PVC
    2. 配置部署文件:
    apiVersion: apps/v1beta2
    kind: StatefulSet
    metadata:
      name: postgres
    spec:
      serviceName: postgres
      selector:
        matchLabels:
          app: postgres
      replicas: 1
      template:
        metadata:
          labels:
            app: postgres
            role: postgres
        spec:
          containers:
            - name: postgres
              image: postgres
              env:
                ...
              ports:
                ...
              # Especially this part should be configured!
              volumeMounts:
                - name: postgres-persistent-storage
                  mountPath: /var/lib/postgresql
          volumes:
            - name: postgres-persistent-storage
              gcePersistentDisk:
                # This GCE PD must already exist.
                pdName: postgres-disk
                fsType: ext4
    

    【讨论】:

      【解决方案2】:

      您可以在 Google Kubernetes Engine 集群中使特定节点不可抢占,如 official documentation 中所述。

      设置具有可抢占和不可抢占节点池的集群的步骤是:

      1. 创建集群:在 GCP Console 中,转到 Kubernetes Engine -> 创建集群,然后根据需要配置集群。
      2. 在该配置页面的节点池下,单击添加节点池。输入默认和新池的节点数。
      3. 要使其中一个池可抢占,请单击池名称下的 Advance edit 按钮,选中 Enable preemptible nodes (beta) 框,然后保存更改.
      4. 点击创建。

      那么您可能只想在不可抢占的节点上安排特定的 pod。为此,您可以use node taints

      【讨论】:

        【解决方案3】:

        您可以使用名为 GKE google kubernetes 集群的 GCP 托管服务。

        并且存储类更改导致的存储数据被擦除可能不会保留策略和PVC。

        我认为最好使用托管服务。

        【讨论】:

          猜你喜欢
          • 2016-01-02
          • 2020-01-30
          • 1970-01-01
          • 2012-11-09
          • 2015-09-29
          • 2023-03-07
          • 2018-09-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多