Я пытаюсь запустить два экземпляра Statefulset Cassandra и соответствующий PVC в кластере, созданном в AWS AZ (в 3 зонах, eu-west-1a , eu-west-1b & ес-запад-1c ).
Я создал группу узлов со следующими 2 узлами, так как показано, что эти узлы присоединяются в зонах eu-west-1a и eu-west-1b
ip-192-168-47-86.eu-west-1.compute.internal - failure-domain.beta.kubernetes.io/zone=eu-west-1a,node-type=database-only
ip-192-168-3-191.eu-west-1.compute.internal - failure-domain.beta.kubernetes.io/zone=eu-west-1b,node-type=database-only
Когда я запускаю экземпляры Cassandra (используя Helm), запускается только один экземпляр. Другой экземпляр показывает ошибку,
0/4 nodes are available: 2 node(s) didn't match node selector, 2 node(s) had no available volume zone.
PVC для этих случаев ограничены,
kubectl get pvc -n storage -o wide
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
cassandra-data-cc-cassandra-0 Bound pvc-81e30224-14c5-11e9-aa4e-06d38251f8aa 10Gi RWO gp2 4m
cassandra-data-cc-cassandra-1 Bound pvc-abd30868-14c5-11e9-aa4e-06d38251f8aa 10Gi RWO gp2 3m
Однако ПВ показывают, что они находятся в зонах eu-west-1b & eu-west-1c
kubectl get pv -n storage --show-labels
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE LABELS
pvc-81e30224-14c5-11e9-aa4e-06d38251f8aa 10Gi RWO Delete Bound storage/cassandra-data-cc-cassandra-0 gp2 7m failure-domain.beta.kubernetes.io/region=eu-west-1,failure-domain.beta.kubernetes.io/zone=eu-west-1b
pvc-abd30868-14c5-11e9-aa4e-06d38251f8aa 10Gi RWO Delete Bound storage/cassandra-data-cc-cassandra-1 gp2 6m failure-domain.beta.kubernetes.io/region=eu-west-1,failure-domain.beta.kubernetes.io/zone=eu-west-1c
Я попытался добавить следующую топологию к StorageClass
, но безрезультатно,
allowedTopologies:
- matchLabelExpressions:
- key: failure-domain.beta.kubernetes.io/zone
values:
- eu-west-1a
- eu-west-1b
Но, несмотря на это, я все еще вижу PV в зонах, eu-west-1b
& eu-west-1c
.
Использование K8 1.11.
Есть ли другие возможные исправления?