0

我在 AWS 中有一个 kubernetes 集群,在以下 AZ 中有 ec2 工作节点,每个 AZ 中有相应的 PersistentVolume。

us-west-2a
us-west-2b
us-west-2c
us-west-2d

我的问题是我想创建一个带有引用 PersistentVolumeClaim 的卷挂载的 Deployment,并保证它们位于同一个 AZ,因为现在很幸运,Deployment 和 PersistentVolumeClaim 最终都在同一个 AZ 中。如果它们不在同一个 AZ 中,则部署无法找到卷挂载。

我通过在每个 AZ 中手动创建 EBS 卷并将 ID 复制到规范来创建 4 个 PersistentVolume。

{
  "apiVersion": "v1",
  "kind": "PersistentVolume",
  "metadata": {
    "name": "pv-2"
  },
  "spec": {
    "capacity": {
      "storage": "1Gi"
    },
    "accessModes": [
      "ReadWriteOnce"
    ],
    "persistentVolumeReclaimPolicy": "Retain",
    "awsElasticBlockStore": {
      "volumeID": "vol-053f78f0c16e5f20e",
      "fsType": "ext4"
    }
  }
}
{
   "kind": "PersistentVolumeClaim",
   "apiVersion": "v1",
   "metadata": {
      "name": "mydata",
      "namespace": "staging"
   },
   "spec": {
      "accessModes": [
         "ReadWriteOnce"
      ],
      "resources": {
         "requests": {
            "storage": "10Mi"
         }
      }
   }
}
{
   "apiVersion": "extensions/v1beta1",
   "kind": "Deployment",
   "metadata": {
      "name": "myapp",
      "namespace": "default",
      "labels": {
         "app": "myapp"
      }
   },
   "spec": {
      "replicas": 1,
      "selector": {
         "matchLabels": {
            "app": "myapp"
         }
      },
      "template": {
         "metadata": {
            "labels": {
               "app": "myapp"
            }
         },
         "spec": {
            "containers": [
               {
                  "name": "hello",
                  "image": "centos:7",
                  "volumeMounts": [ {  
                        "name":"mydata",
                        "mountPath":"/etc/data/"
                     } ]
               }
            ],
            "volumes": [ {  
                  "name":"mydata",
                  "persistentVolumeClaim":{  
                     "claimName":"mydata"
                  }
               }]
         }
      }
   }
}

4

1 回答 1

2

您可以尝试为区域和可用性区域设置注释,如herehere中所述

于 2019-03-24T16:02:56.693 回答