使用动态 AWS EBS 支持的声明创建 Deployment 和 PersistentVolumeClaim
Creating a Deployment and PersistentVolumeClaim with dynamic AWS EBS backed claims
我创建了一个 Deployment,它有一个引用 PersistentVolumeClaim 的 volumeMount 以及一个集群上的内存请求,该集群的节点位于 3 个不同的可用区 us-west-2a、us-west-2b 和 us-west-2c。
Deployment 在动态创建 PersistentVolume 时需要一段时间才能启动,但它们最终都会启动。
我 运行 遇到的问题是 PersistentVolume 是在 us-west-2c 中创建的,并且 pod 可以 运行 的唯一节点已经过度分配。
有没有办法让我创建 Deployment 并声明不在没有 pod 可以启动的区域进行声明?
我相信您正在寻找 Topology Awareness 功能。
Topology Awareness
In Multi-Zone clusters, Pods can be spread across
Zones in a Region. Single-Zone storage backends should be provisioned
in the Zones where Pods are scheduled. This can be accomplished by
setting the Volume Binding Mode.
Kubernetes 发布了 topology-aware dynamic provisioning feature kubernetes 版本 1.12,我相信这会解决您的问题。
我创建了一个 Deployment,它有一个引用 PersistentVolumeClaim 的 volumeMount 以及一个集群上的内存请求,该集群的节点位于 3 个不同的可用区 us-west-2a、us-west-2b 和 us-west-2c。
Deployment 在动态创建 PersistentVolume 时需要一段时间才能启动,但它们最终都会启动。
我 运行 遇到的问题是 PersistentVolume 是在 us-west-2c 中创建的,并且 pod 可以 运行 的唯一节点已经过度分配。
有没有办法让我创建 Deployment 并声明不在没有 pod 可以启动的区域进行声明?
我相信您正在寻找 Topology Awareness 功能。
Topology Awareness
In Multi-Zone clusters, Pods can be spread across Zones in a Region. Single-Zone storage backends should be provisioned in the Zones where Pods are scheduled. This can be accomplished by setting the Volume Binding Mode.
Kubernetes 发布了 topology-aware dynamic provisioning feature kubernetes 版本 1.12,我相信这会解决您的问题。