1

我有一个分布在两个区域 A 和 B 的 kubernetes 集群。我使用 nfs 卷进行持久存储。我在两个区域都有 nfs 卷。我正在创建一组有状态的 2 个副本,这些副本将分布在这些区域中(我使用 pod 反亲和性来实现这一点)。现在我希望 A 区中的 Pod 使用 A 区中的卷,而 B 区中的 Pod 使用 B 区中的卷。

我可以将标签添加到持久卷,并将持久卷声明与这些标签相匹配。但是如何确保 pod 的 pvc 不会绑定到另一个区域中的 pv?

4

1 回答 1

1

您可以尝试使用特殊的内置标签在两个区域之间跨集群绑定和拆分 Kubernetes persistent volume claims (PVCs)pod 。如果您手动创建卷,则可以使用值标记它们,确保 pod 仅被调度到与持久卷所在区域相同的区域中的节点。persistent volumes (PVs)failure-domain.beta.kubernetes.io/zonefailure-domain.beta.kubernetes.io/zone:zoneA

例如,label为节点和 PV 设置:

kubectl label node <node-name> failure-domain.beta.kubernetes.io/zone=zoneA

kubectl label pv <pv-name> failure-domain.beta.kubernetes.io/zone=zoneA

从官方 Kubernetes文档中找到一些有用的信息。

于 2018-07-23T14:54:26.483 回答