我有一个分布在两个区域 A 和 B 的 kubernetes 集群。我使用 nfs 卷进行持久存储。我在两个区域都有 nfs 卷。我正在创建一组有状态的 2 个副本,这些副本将分布在这些区域中(我使用 pod 反亲和性来实现这一点)。现在我希望 A 区中的 Pod 使用 A 区中的卷,而 B 区中的 Pod 使用 B 区中的卷。
我可以将标签添加到持久卷,并将持久卷声明与这些标签相匹配。但是如何确保 pod 的 pvc 不会绑定到另一个区域中的 pv?
我有一个分布在两个区域 A 和 B 的 kubernetes 集群。我使用 nfs 卷进行持久存储。我在两个区域都有 nfs 卷。我正在创建一组有状态的 2 个副本,这些副本将分布在这些区域中(我使用 pod 反亲和性来实现这一点)。现在我希望 A 区中的 Pod 使用 A 区中的卷,而 B 区中的 Pod 使用 B 区中的卷。
我可以将标签添加到持久卷,并将持久卷声明与这些标签相匹配。但是如何确保 pod 的 pvc 不会绑定到另一个区域中的 pv?
您可以尝试使用特殊的内置标签在两个区域之间跨集群绑定和拆分 Kubernetes persistent volume claims (PVCs)
pod 。如果您手动创建卷,则可以使用值标记它们,确保 pod 仅被调度到与持久卷所在区域相同的区域中的节点。persistent volumes (PVs)
failure-domain.beta.kubernetes.io/zone
failure-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文档中找到一些有用的信息。