Невозможно создать statefulset и PVC в одном AWS AZ - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь запустить два экземпляра 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.

Есть ли другие возможные исправления?

1 Ответ

0 голосов
/ 10 января 2019

Просмотр https://v1 -11.docs.kubernetes.io / docs / concept / storage / storage-classes / allowedTopologies не существует.

Итак, я использовал zones: eu-west-1a, eu-west-1b в StorageClass, который, кажется, сработал.

provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp2
  zones: eu-west-1a, eu-west-1b
...