Istio Istio

Instala y personaliza Istio con Helm

La forma oficialmente recomendada de ejecutar Istio en producción y lo que reemplazó al ya eliminado Istio Operator.

12 min Intermedio

istioctl install es la forma más rápida de poner en marcha una malla para aprender o probar en local, pero Helm es el método oficialmente recomendado por Istio para una instalación de producción que pretendes gestionar, versionar y personalizar con el tiempo. Esta guía instala Istio con Helm y cubre qué reemplazó al Istio Operator para el tipo de personalización detallada hacia la que te dirige el material más antiguo.

Una nota antes de empezar: el Istio Operator ya no existe

Istio solía incluir un Istio Operator dentro del clúster: un controlador que vigilaba un recurso personalizado IstioOperator y reconciliaba el clúster para que coincidiera con él. Si has visto tutoriales, material de certificación o documentación antigua construida en torno a volcar un perfil a un archivo YAML IstioOperator y aplicarlo, eso es lo que describen. El operator dentro del clúster quedó obsoleto en Istio 1.23 y se eliminó por completo en la 1.24. Ya no existe en las versiones actuales de Istio.

Lo que lo reemplazó es más directo: archivos de valores de Helm. La misma personalización que antes pasaba por un recurso IstioOperator, habilitar un gateway, ajustar las solicitudes de recursos, cambiar la configuración de un componente, ahora se expresa como valores de Helm y se aplica con helm install o helm upgrade, igual que personalizarías cualquier otro chart de Helm. Si estudias con material que presenta el Operator como esencial, trata el concepto de fondo (personalizar ajustes en un archivo, aplicarlo y que Istio reconcilie para coincidir) como todavía válido, pero traduce el mecanismo a Helm.

Instala los tres charts principales

La instalación de Istio con Helm se divide en tres charts, instalados en orden:

helm repo add istio https://istio-release.storage.googleapis.com/charts
helm repo update

# 1. CRD y recursos a nivel de clúster
helm install istio-base istio/base -n istio-system --create-namespace

# 2. El plano de control (istiod)
helm install istiod istio/istiod -n istio-system --wait

# 3. El ingress gateway (opcional, si necesitas una entrada de tráfico externo)
helm install istio-ingressgateway istio/gateway -n istio-system

istio-base instala las CustomResourceDefinitions y los recursos RBAC a nivel de clúster de los que depende todo lo demás, y tiene que ir primero. istiod es el propio plano de control. El chart del gateway solo es necesario si quieres un ingress (o egress) gateway administrado; una malla con solo tráfico de sidecar a sidecar puede omitirlo.

kubectl get pods -n istio-system
helm list -n istio-system

Deberías ver istiod y, si lo instalaste, el gateway, en Running, y helm list debería mostrar los tres releases.

Personaliza los ajustes con valores

Cada chart acepta sus propios valores, que se descubren igual que en cualquier chart de Helm:

helm show values istio/istiod > istiod-values.yaml

Edita el archivo y luego instala (o actualiza) con él:

helm upgrade istiod istio/istiod -n istio-system -f istiod-values.yaml

Personalizaciones comunes: requests y limits de recursos para istiod o los gateways, habilitar un egress gateway (desactivado por defecto en la mayoría de perfiles) o ajustar configuraciones de toda la malla bajo meshConfig. Todo lo que el Istio Operator permitía configurar mediante spec.components o spec.meshConfig tiene un equivalente en valores de Helm; la propia documentación de instalación con Helm de Istio es la referencia autorizada sobre exactamente qué valores corresponden a qué comportamiento en la versión que ejecutes.

Aplica un cambio

helm upgrade istiod istio/istiod -n istio-system -f istiod-values.yaml

El mismo patrón que cualquier otra actualización de Helm: edita los valores, vuelve a ejecutar helm upgrade y Helm reconcilia los recursos en vivo para que coincidan. No hay un paso aparte de “aplicar la configuración del operator” como describe el material más antiguo; el helm upgrade es el paso de aplicar.

Desinstalar

helm uninstall istio-ingressgateway -n istio-system
helm uninstall istiod -n istio-system
helm uninstall istio-base -n istio-system
kubectl delete namespace istio-system

A diferencia de istioctl uninstall --purge, que elimina todo con un solo comando, el enfoque de Helm desinstala cada release individualmente, aproximadamente en el orden inverso al de instalación, ya que los charts posteriores pueden depender de recursos que creó el chart base.

Guías populares