我有一个遍布A和B两个区域的kubernetes集群。我正在使用nfs卷进行持久存储。我在两个区域中都有nfs卷。我正在创建一个有状态的2个副本集,这些副本集将分布在这些区域中(我使用pod anti-affinity实现了此目的)。现在,我希望区域A中的豆荚使用区域A中的卷,而区域B中的豆荚使用区域B中的卷。
我可以向持久卷添加标签,并将持久卷声明与这些标签匹配。但是,如何确保Pod的PVC不绑定到另一个区域中的PV?
答案 0 :(得分:1)
您可以尝试将persistent volume claims (PVCs)
绑定到persistent volumes (PVs)
,并使用特殊的内置标签failure-domain.beta.kubernetes.io/zone
在两个区域之间的整个群集中拆分Kubernetes Pod。如果手动创建卷,则可以将其标记为failure-domain.beta.kubernetes.io/zone:zoneA
,以确保将pod仅调度到与持久卷的区域相同的区域中的节点。
例如,为节点和PV设置label
:
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 documentation中找到一些有用的信息。