Instalar con Helm
Sigue esta guía para instalar y configurar un mesh de Istio usando Helm.
Los charts de Helm utilizados en esta guía son los mismos que se utilizan al
instalar Istio a través de Istioctl, con la excepción del chart gateway.
Istioctl utiliza un chart de gateway diferente al chart de gateway descrito en esta guía.
Prerrequisitos
Realiza cualquier configuración específica de la plataforma necesaria.
Comprueba los Requisitos para Pods y Servicios.
Instala el último cliente de Helm. Las versiones de Helm lanzadas antes de la versión de Istio más antigua actualmente compatible no están probadas, no son compatibles ni se recomiendan.
Configura el repositorio de Helm:
$ helm repo add istio https://istio-release.storage.googleapis.com/charts
$ helm repo updatePasos de instalación
Esta sección describe el procedimiento para instalar Istio usando Helm. La sintaxis general para instalación con helm es:
$ helm install <release> <chart> --namespace <namespace> --create-namespace [--set <other_parameters>]Las variables especificadas en el comando son las siguientes:
<chart>Un camino a un chart empaquetado, un camino a un directorio de chart desempaquetado o una URL.<release>Un nombre para identificar y gestionar el chart de Helm una vez instalado.<namespace>El Namespace en el cual el chart debe ser instalado.
Los valores de configuración por defecto pueden ser cambiados usando uno o más argumentos --set <parámetro>=<valor>. Alternativamente, puedes especificar varios parámetros en un archivo de valores personalizados usando el argumento --values <archivo>.
Instala el chart base de Istio que contiene las definiciones de recursos personalizados de nivel de cluster (CRDs) que deben ser instaladas antes de la implementación del plano de control de Istio:
$ helm install istio-base istio/base -n istio-system --set defaultRevision=default --create-namespaceValida la instalación de CRDs con el comando
helm ls:$ helm ls -n istio-system NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION istio-base istio-system 1 2024-04-17 22:14:45.964722028 +0000 UTC deployed base-1.29.0 1.29.0En la salida, localiza la entrada para
istio-basey asegúrate de que el estado esté configurado adeployed.Si planeas usar el chart de Istio CNI, debes hacerlo ahora. Consulta Instalar Istio con el plugin CNI para más información.
Instala el chart de discovery de Istio que implementa el servicio
istiod:$ helm install istiod istio/istiod -n istio-system --waitVerifica la instalación del chart de discovery de Istio:
$ helm ls -n istio-system NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION istio-base istio-system 1 2024-04-17 22:14:45.964722028 +0000 UTC deployed base-1.29.0 1.29.0 istiod istio-system 1 2024-04-17 22:14:45.964722028 +0000 UTC deployed istiod-1.29.0 1.29.0Obtén el estado del chart de helm instalado para asegurarte de que esté desplegado:
$ helm status istiod -n istio-system NAME: istiod LAST DEPLOYED: Fri Jan 20 22:00:44 2023 NAMESPACE: istio-system STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: "istiod" successfully installed! Para aprender más sobre la release, intenta: $ helm status istiod $ helm get all istiod Pasos siguientes: * Implementar un Gateway: https://istio.io/latest/docs/setup/additional-setup/gateway/ * Prueba nuestras tareas para empezar con configuraciones comunes: * https://istio.io/latest/docs/tasks/traffic-management * https://istio.io/latest/docs/tasks/security/ * https://istio.io/latest/docs/tasks/policy-enforcement/ * https://istio.io/latest/docs/tasks/policy-enforcement/ * Revisa la lista de releases soportados, publicaciones de CVE y nuestra guía de fortalecimiento: * https://istio.io/latest/docs/releases/supported-releases/ * https://istio.io/latest/news/security/ * https://istio.io/latest/docs/ops/best-practices/security/ Para más documentación, consulta el sitio web de https://istio.io Cuéntanos cómo fue tu experiencia de instalación/actualización en https://forms.gle/99uiMML96AmsXY5d6Verifica que el servicio
istiodse haya instalado correctamente y que sus pods estén corriendo:$ kubectl get deployments -n istio-system --output wide NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR istiod 1/1 1 1 10m discovery docker.io/istio/pilot:1.29.0 istio=pilot(Opcional) Instala un gateway de entrada:
$ kubectl create namespace istio-ingress $ helm install istio-ingress istio/gateway -n istio-ingress --waitConsulta Instalar Gateways para documentación detallada sobre la instalación del gateway.
Actualizar tu configuración de Istio
Puedes proporcionar configuraciones de sobrescritura específicas para cualquier chart de Helm de Istio usado anteriormente
y sigue el flujo de actualización de Helm para personalizar tu instalación de meshde Istio. Las opciones configurables pueden ser encontradas usando helm show values istio/<chart>;
por ejemplo helm show values istio/gateway.
Migrar de instalaciones no-Helm
Si estás migrando de una versión de Istio instalada usando istioctl a Helm (Istio 1.5 o anterior), necesitas eliminar los recursos actuales del plano de control de Istio y re-instalar Istio usando Helm tal como se describe anteriormente. Al eliminar la instalación actual de Istio, no debes eliminar las definiciones de recursos personalizados de Istio (CRDs) ya que eso puede llevar a la pérdida de tus recursos personalizados de Istio.
Puedes seguir los pasos mencionados en la Guía de desinstalación de istioctl.
Desinstalar
Puedes desinstalar Istio y sus componentes desinstalando los charts instalados anteriormente.
Lista todos los charts de Istio instalados en el namespace
istio-system:$ helm ls -n istio-system NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION istio-base istio-system 1 2024-04-17 22:14:45.964722028 +0000 UTC deployed base-1.29.0 1.29.0 istiod istio-system 1 2024-04-17 22:14:45.964722028 +0000 UTC deployed istiod-1.29.0 1.29.0(Opcional) Elimina cualquier instalación de charts de gateway de Istio:
$ helm delete istio-ingress -n istio-ingress $ kubectl delete namespace istio-ingressElimina el chart de discovery de Istio:
$ helm delete istiod -n istio-systemElimina el chart base de Istio:
$ helm delete istio-base -n istio-systemElimina el namespace
istio-system:$ kubectl delete namespace istio-system
Desinstalar recursos de la etiqueta de revisión estable
Si decides continuar usando el plano de control anterior, en lugar de completar la actualización,
puedes desinstalar la revisión más reciente y su etiqueta por primera vez
helm template istiod istio/istiod -s templates/revision-tags.yaml --set revisionTags={prod-canary} --set revision=canary -n istio-system | kubectl delete -f -.
Luego, debes desinstalar la revisión de Istio que apuntaba siguiendo el procedimiento de desinstalación anterior.
Si instalaste los gateways (s) para esta revisión usando actualizaciones in-place, también debes reinstalar los gateways (s) para la revisión anterior manualmente. La eliminación de la revisión anterior y sus etiquetas no revertirá automáticamente los gateways (s) previamente actualizados.
(Opcional) Eliminar CRDs instalados por Istio
La eliminación permanente de CRDs elimina cualquier recurso de Istio que hayas creado en tu cluster. Para eliminar CRDs de Istio instalados en tu cluster:
$ kubectl get crd -oname | grep --color=never 'istio.io' | xargs kubectl deleteGenerar un manifiesto antes de la instalación
Puedes generar los manifiestos para cada componente antes de instalar Istio usando el subcomando helm template.
Por ejemplo, para generar un manifiesto que puede ser instalado con kubectl para el componente istiod:
$ helm template istiod istio/istiod -n istio-system --kube-version {Kubernetes version of target cluster} > istiod.yamlEl manifiesto generado puede ser usado para inspeccionar exactamente qué está instalado así como para rastrear los cambios en el manifiesto a lo largo del tiempo.
Para instalar el manifiesto generado anteriormente, que creará el componente istiod en el cluster de destino:
$ kubectl apply -f istiod.yaml