首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制PersistentVolumeClaim和Deployment在同一可用区落地

强制PersistentVolumeClaim和Deployment在同一可用区落地
EN

Stack Overflow用户
提问于 2019-03-23 12:42:55
回答 1查看 940关注 0票数 0

我在亚马逊网络服务中有一个kubernetes集群,在以下AZ中有ec2工作节点,在每个AZ中都有相应的PersistentVolumes。

代码语言:javascript
复制
us-west-2a
us-west-2b
us-west-2c
us-west-2d

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

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

代码语言:javascript
复制
{
  "apiVersion": "v1",
  "kind": "PersistentVolume",
  "metadata": {
    "name": "pv-2"
  },
  "spec": {
    "capacity": {
      "storage": "1Gi"
    },
    "accessModes": [
      "ReadWriteOnce"
    ],
    "persistentVolumeReclaimPolicy": "Retain",
    "awsElasticBlockStore": {
      "volumeID": "vol-053f78f0c16e5f20e",
      "fsType": "ext4"
    }
  }
}
代码语言:javascript
复制
{
   "kind": "PersistentVolumeClaim",
   "apiVersion": "v1",
   "metadata": {
      "name": "mydata",
      "namespace": "staging"
   },
   "spec": {
      "accessModes": [
         "ReadWriteOnce"
      ],
      "resources": {
         "requests": {
            "storage": "10Mi"
         }
      }
   }
}
代码语言:javascript
复制
{
   "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"
                  }
               }]
         }
      }
   }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-25 00:02:57

您可以尝试为region和AvailabilityZone设置注解,如herehere中所述

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55310673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档