Actualizar con Helm

Sigue esta guía para actualizar y configurar una instalación en modo ambient usando Helm. Esta guía asume que ya has realizado una instalación en modo ambient con Helm con una versión anterior de Istio.

Entendiendo las actualizaciones del modo ambient

Todas las actualizaciones de Istio implican la actualización del control plane, el data plane y las CRD de Istio. Debido a que el data plane ambient se divide en dos componentes, el ztunnel y las gateways (que incluyen waypoints), las actualizaciones implican pasos separados para estos componentes. La actualización del control plane y las CRD se trata aquí brevemente, pero es esencialmente idéntica al proceso para actualizar estos componentes en modo sidecar.

Al igual que el modo sidecar, las gateways pueden hacer uso de etiquetas de revisión para permitir un control detallado sobre las actualizaciones (de la gateway), incluidos los waypoints, con controles simples para revertir a una versión anterior del control plane de Istio en cualquier momento. Sin embargo, a diferencia del modo sidecar, el ztunnel se ejecuta como un DaemonSet, un proxy por nodo, lo que significa que las actualizaciones de ztunnel afectan, como mínimo, a un nodo completo a la vez. Si bien esto puede ser aceptable en muchos casos, las aplicaciones with conexiones TCP de larga duración pueden verse interrumpidas. En tales casos, recomendamos usar el acordonamiento y el drenaje de nodos antes de actualizar el ztunnel para un nodo determinado. En aras de la simplicidad, este documento demostrará las actualizaciones in-place del ztunnel, que pueden implicar un breve tiempo de inactividad.

Prerrequisitos

Prepararse para la actualización

Antes de actualizar Istio, recomendamos descargar la nueva versión de istioctl y ejecutar istioctl x precheck para asegurarte de que la actualización sea compatible con tu entorno. La salida debería ser algo como esto:

$ istioctl x precheck
✔ No issues found when checking the cluster. Istio is safe to install or upgrade!
  To get started, check out <https://istio.io/latest/docs/setup/getting-started/>

Ahora, actualiza el repositorio de Helm:

$ helm repo update istio
No se necesitan preparaciones adicionales para las actualizaciones in-place, procede al siguiente paso.

Actualizar el control plane

Componentes base

Las Definiciones de Recursos Personalizados (CRD) de todo el cluster deben actualizarse antes del despliegue de una nueva versión del control plane:

$ helm upgrade istio-base istio/base -n istio-system

control plane istiod

El control plane Istiod gestiona y configura los proxies que enrutan el tráfico dentro de la malla. El siguiente comando instalará una nueva instancia del control plane junto con la actual, pero no introducirá nuevos proxies de gateway o waypoints, ni tomará el control de los existentes.

Si has personalizado tu instalación de istiod, puedes reutilizar el archivo values.yaml de actualizaciones o instalaciones anteriores para mantener la coherencia de tus planos de control.

$ helm upgrade istiod istio/istiod -n istio-system --wait

Agente de nodo CNI

El agente de nodo CNI de Istio es responsable de detectar los pods agregados a la malla ambient, informar a ztunnel que se deben establecer los puertos de proxy dentro de los pods agregados y configurar la redirección del tráfico dentro del namespace de red del pod. No forma parte del data plane ni del control plane.

El CNI en la versión 1.x es compatible con el control plane en la versión 1.x+1 y 1.x. Esto significa que el control plane debe actualizarse antes que el CNI de Istio, siempre que la diferencia de versión sea de una versión menor.

$ helm upgrade istio-cni istio/cni -n istio-system

Actualizar el data plane

DaemonSet de ztunnel

El DaemonSet de ztunnel es el componente de proxy de nodo. El ztunnel en la versión 1.x es compatible con el control plane en la versión 1.x+1 y 1.x. Esto significa que el control plane debe actualizarse antes que ztunnel, siempre que la diferencia de versión sea de una versión menor. Si has personalizado previamente tu instalación de ztunnel, puedes reutilizar el archivo values.yaml de actualizaciones o instalaciones anteriores para mantener la coherencia de tu data plane.

$ helm upgrade ztunnel istio/ztunnel -n istio-system --wait

Actualizar el chart de la gateway desplegado manualmente (opcional)

Las Gateway que se desplegaron manualmente deben actualizarse individualmente usando Helm:

$ helm upgrade istio-ingress istio/gateway -n istio-ingress
¿Fue útil esta información?
¿Tienes alguna sugerencia para mejorar?

¡Gracias por tus comentarios!