Я выполнил следующую команду в этот момент времени в региональном кластере с тремя зеркалами:
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 все еще существует, и том считается «освобожденным». Но он пока недоступен для другой претензии, потому что в томе остались данные предыдущего заявителя. Администратор может вернуть том вручную, выполнив следующие действия.
В настоящее время вы можете создать Региональные постоянные диски чтобы избежать такой ситуации.