Назад | Перейти на главную страницу

Gcloud: нет доступной зоны тома после обновления до регионального кластера

Я выполнил следующую команду в этот момент времени в региональном кластере с тремя зеркалами:

gcloud container clusters update proto-cluster-ha-1 --zone europe-north1 --node-locations europe-north1-a

Перед выполнением кластер был отображен в зонах europe-north1-a / europe-north1-b / europe-north1-c.

После исполнения кластер работает только в единой зоне europe-north1-a.

Эта проблема:

После обновления мои монтируемые тома больше не могут монтироваться по следующим причинам:

2 node(s) had no available volume zone

хотя PVC отображается как BOUND:

csi-pvc-mounting         Bound

Если я удалю монтирование и создаю его заново, все будет работать нормально. Но как мне восстановить такой монтированный том, не разрушив его?

Я уже сравнивал подключенный yaml вновь созданного крепления со старым, который не хочет связываться, но я не могу обнаружить различий ..

Этот вопрос немного устарел, однако, если у кого-то все еще будет аналогичная проблема, документация по этой теме была обновлена.

Я попытался воспроизвести это поведение, однако результат использования этой команды работает так, как задумано.

Когда вы использовали

$ gcloud container clusters update proto-cluster-ha-1 --zone europe-north1 --node-locations europe-north1-a

Вы обновили кластер proto-cluster-ha-1 использовать только одну зону europe-north1-a.

Это хорошо описано в - расположение узлов параметр.

Набор зон, в которых следует реплицировать указанное посадочное место узла. Все зоны должны находиться в том же регионе, что и мастер (ы) кластера, указанный флагом --zone или --region. Кроме того, для зональных кластеров параметр --node-locations должен содержать основную зону кластера. Если не указано иное, все узлы будут находиться в основной зоне кластера (для зональных кластеров) или будут распределены по трем случайно выбранным зонам в пределах региона кластера (для региональных кластеров).

Если вы хотите обновить конфигурацию более чем в одной зоне, вам необходимо указать это. Пример ниже:

$ kubectl describe node | grep zone
                    failure-domain.beta.kubernetes.io/zone=us-central1-c
                    failure-domain.beta.kubernetes.io/zone=us-central1-b
                    failure-domain.beta.kubernetes.io/zone=us-central1-a
                    
$ gcloud container clusters update regio --zone us-central1 --node-locations us-central1-a,us-central1-b
Updating regio...done.
Updated [https://container.googleapis.com/v1/projects/XXXXXXX/zones/us-central1/clusters/regio].
To inspect the contents of your cluster, go to: https://console.cloud.google.com/kubernetes/workload_/gcloud/us-central1/regio?project=XXXXXXXX
$ kubectl describe node | grep zone
                    failure-domain.beta.kubernetes.io/zone=us-central1-b
                    failure-domain.beta.kubernetes.io/zone=us-central1-a

Что касается объема, вы не упомянули, как вы создали это Volume, какие Политика возврата использовался.

PersistentVolumes могут иметь различные политики возврата, в том числе Retain, Recycle, и Delete. Для динамически подготовленных PersistentVolumes, политика возврата по умолчанию - Delete. Это означает, что динамически подготовленный том автоматически удаляется, когда пользователь удаляет соответствующий PersistentVolumeClaim. Такое автоматическое поведение может быть неприемлемым, если том содержит ценные данные. В этом случае более целесообразно использовать политику «Сохранить». С Retain политика, if a user deletes a PersistentVolumeClaim, the corresponding PersistentVolume` не удаляется. Вместо этого он перемещается в фазу выпуска, где все его данные можно восстановить вручную.

** Зависит от того, что вы могли: **

Вернуть

Когда пользователь завершит работу со своим томом, он может удалить объекты PVC из API, что позволяет восстановить ресурс. Политика возврата для PersistentVolume сообщает кластеру, что делать с томом после того, как он был освобожден от своего требования. В настоящее время тома могут быть сохранены, переработаны или удалены.

или

Сохранить

Политика возврата позволяет вручную восстанавливать ресурс. Когда PersistentVolumeClaim удаляется, PersistentVolume все еще существует, и том считается «освобожденным». Но он пока недоступен для другой претензии, потому что в томе остались данные предыдущего заявителя. Администратор может вернуть том вручную, выполнив следующие действия.

В настоящее время вы можете создать Региональные постоянные диски чтобы избежать такой ситуации.