Amazon web services 强制PersistentVolumeClaim并部署到同一可用性区域
我在AWS中有一个kubernetes集群,在以下AZ中有ec2工作节点,在每个AZ中有相应的PersistentVolumeAmazon web services 强制PersistentVolumeClaim并部署到同一可用性区域,amazon-web-services,kubernetes,persistent-volumes,aws-ebs,persistent-volume-claims,Amazon Web Services,Kubernetes,Persistent Volumes,Aws Ebs,Persistent Volume Claims,我在AWS中有一个kubernetes集群,在以下AZ中有ec2工作节点,在每个AZ中有相应的PersistentVolume us-west-2a us-west-2b us-west-2c us-west-2d 我的问题是,我想创建一个具有卷装载的部署,该卷装载引用PersistentVolumeClaim,并保证它们位于同一个AZ,因为现在很幸运,部署和PersistentVolumeClaim是否都位于同一AZ。如果它们不在同一个AZ中,则部署无法找到卷装载 我通过在每个AZ中手动创建
us-west-2a
us-west-2b
us-west-2c
us-west-2d
我的问题是,我想创建一个具有卷装载的部署,该卷装载引用PersistentVolumeClaim,并保证它们位于同一个AZ,因为现在很幸运,部署和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"
}
}
}
您可以尝试为区域和AvailabilityZone设置注释,如和中所述“…因为现在很幸运部署和PersistentVolumeClaim是否都在同一个AZ中…”这不是运气。请看,我首先创建了PersistentVolumeClaim,部署确实在同一时间得到了一致的计划。
{
"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"
}
}]
}
}
}
}