Обновление контроллера Gwin
Чтобы обновить контроллер Yandex Cloud Gwin до новой версии, выполните следующие шаги:
- Сделайте резервную копию ресурсов Gwin.
- Обновите CRD (Custom Resource Definitions).
- Обновите контроллер.
Важно
Сначала обновляйте CRDCrashLoopBackOff или перестать обрабатывать ресурсы: API-сервер Kubernetes будет отклонять запросы с неизвестными полями.
Перед началом работы
Узнать актуальную версию Gwin можно в карточке продукта Yandex Cloud Gwin в Cloud Marketplace.
Чтобы узнать текущую версию Gwin в кластере, выполните команду:
helm list --all-namespaces
Сравните текущую версию Gwin с версией в Cloud Marketplace. Если в Cloud Marketplace доступна более новая версия Gwin, выполните следующие шаги для обновления.
Сделайте резервную копию ресурсов Gwin
Перед обновлением сохраните текущую конфигурацию ресурсов Gwin и связанных с ним ресурсов Ingress и Gateway API:
kubectl get all,ingress,gateway,httproute,yccertificate \
-n <пространство_имен> \
-o yaml > gwin-backup.yaml
Где <пространство_имен> — пространство имен Kubernetes, в котором установлен контроллер Gwin.
Как узнать пространство имен
- В консоли управления
выберите каталог. - Перейдите
в сервис Managed Service for Kubernetes. - Выберите кластер Managed Service for Kubernetes и откройте вкладку Marketplace.
- В разделе Установленные приложения откройте карточку приложения Yandex Cloud Gwin.
- На вкладке Основное, в разделе Настройки приложения, найдите значение поля Пространство имён.
Выполните команду, чтобы вывести релизы во всех пространствах имен:
helm list --all-namespaces
Найдите строку, в которой значение поля CHART начинается с gwin-chart. Пространство имен указано в поле NAMESPACE, имя релиза — в поле NAME.
Обновите CRD
Команда helm upgrade автоматически не обновляет уже существующие CRD из каталога crds/. Обновите CRD вручную командой kubectl apply.
-
Скачайте и распакуйте Helm-чарт для новой версии Gwin:
helm pull oci://cr.yandexcloud.kz/yc-marketplace/yandex-cloud/gwin/charts/gwin-chart \ --version <новая_версия_gwin> \ --untarГде
<новая_версия_gwin>— версия Gwin, до которой вы хотите обновить контроллер. Например,v1.11.0.Примечание
Если вы используете версию Helm ниже 3.8.0, добавьте в начало команды строку
export HELM_EXPERIMENTAL_OCI=1 && \, чтобы включить поддержку Open Container Initiative (OCI) в клиенте Helm. -
Примените CRD из скачанного чарта:
kubectl apply --server-side --force-conflicts -f ./gwin-chart/crdsРезультат:
customresourcedefinition.apiextensions.k8s.io/backendtlspolicies.gateway.networking.k8s.io serverside-applied customresourcedefinition.apiextensions.k8s.io/gatewayclasses.gateway.networking.k8s.io serverside-applied customresourcedefinition.apiextensions.k8s.io/gateways.gateway.networking.k8s.io serverside-applied customresourcedefinition.apiextensions.k8s.io/grpcroutes.gateway.networking.k8s.io serverside-applied customresourcedefinition.apiextensions.k8s.io/httproutes.gateway.networking.k8s.io serverside-applied ... customresourcedefinition.apiextensions.k8s.io/yccertificates.gwin.yandex.cloud serverside-applied customresourcedefinition.apiextensions.k8s.io/ycstoragebuckets.gwin.yandex.cloud serverside-applied
Обновите контроллер
В зависимости от того, как вы установили Gwin, обновите контроллер с помощью Helm или консоли управления:
Выполните команду helm upgrade и укажите в параметрах те же значения, что и при установке контроллера. Чтобы не указывать их повторно, используйте параметр --reuse-values
helm upgrade <имя_релиза_gwin> ./gwin-chart \
--namespace <пространство_имен> \
--reuse-values
Где:
<имя_релиза_gwin>— имя, заданное при установке Gwin. Указано в полеNAMEв выводеhelm list -n <пространство_имен>.<пространство_имен>— пространство имен Kubernetes, в котором установлен контроллер Gwin.
Результат:
Release "gwin" has been upgraded. Happy Helming!
NAME: gwin
LAST DEPLOYED: Mon Aug 10 13:59:45 2026
NAMESPACE: gwin-space
STATUS: deployed
REVISION: 2
DESCRIPTION: Upgrade complete
- В консоли управления
выберите каталог. - Перейдите
в сервис Managed Service for Kubernetes. - Выберите кластер Managed Service for Kubernetes и откройте вкладку Marketplace.
- В разделе Установленные приложения найдите установленное приложение Yandex Cloud Gwin. Если доступна новая версия Gwin, отобразится сообщение Доступна новая версия приложения.
- Нажмите значок
в строке приложения Yandex Cloud Gwin и выберите Редактировать. - Выберите новую версию Gwin и нажмите кнопку Сохранить.
Проверьте результат
-
Проверьте версию Gwin. Версия указана в поле
VERSIONв выводе команды:helm list --all-namespaces -
Убедитесь, что под контроллера Gwin перешел в состояние
Running:kubectl get pods -n <пространство_имен>Где
<пространство_имен>— пространство имен Kubernetes, в котором установлен контроллер Gwin.Результат:
NAME READY STATUS RESTARTS AGE gwin-5f58847bdc-tzfnw 1/1 Running 0 12m nodecheck-4sgb4 1/1 Running 0 12m nodecheck-bbh57 1/1 Running 0 12m nodecheck-rzvtc 1/1 Running 0 12m -
Убедитесь, что ресурсы Ingress или Gateway API продолжают обрабатываться и балансировщик Application Load Balancer доступен.
Gateway APIIngressВыполните команду:
kubectl get gateway,httproute -n <пространство_имен>Где
<пространство_имен>— пространство имен Kubernetes, в котором установлен контроллер Gwin.Результат:
NAME CLASS ADDRESS PROGRAMMED AGE gateway.gateway.networking.k8s.io/example-gateway gwin-default <IP-адрес> 32h NAME HOSTNAMES AGE httproute.gateway.networking.k8s.io/example-httproute ["example.com"] 32h httproute.gateway.networking.k8s.io/example-redirect-httproute ["example.com"] 6m56sВыполните команду:
kubectl get ingress -n <пространство_имен>Результат:
NAME CLASS HOSTS ADDRESS PORTS AGE example-ingress gwin-default example.com <IP-адрес> 80, 443 31hВ поле
ADDRESSдолжен быть указан IP-адрес балансировщика Application Load Balancer.