Instalar con Helm
Recomendamos el uso de Helm para instalar Istio para uso en producción en modo ambient. Para permitir actualizaciones controladas, los componentes del control plane y del data plane se empaquetan e instalan por separado. (Debido a que el data plane ambient se divide en dos componentes, el ztunnel y los waypoints, las actualizaciones implican pasos separados para estos componentes).
Prerrequisitos
Comprueba los Prerrequisitos específicos de la plataforma.
Instala el cliente de Helm, versión 3.6 o superior.
Configura el repositorio de Helm:
$ helm repo add istio https://istio-release.storage.googleapis.com/charts $ helm repo update
Instalar el control plane
Los valores de configuración predeterminados se pueden cambiar usando uno o más argumentos --set <parameter>=<value>. Alternativamente, puedes especificar varios parámetros en un archivo de valores personalizado usando el argumento --values <file>.
Los detalles completos sobre cómo usar y personalizar las instalaciones de Helm están disponibles en la documentación de instalación de sidecar.
A diferencia de los perfiles de istioctl, que agrupan los componentes que se instalarán o eliminarán, los perfiles de Helm simplemente establecen grupos de valores de configuración.
Componentes base
El chart base contiene las CRD básicas y los roles de cluster necesarios para configurar Istio.
Esto debe instalarse antes que cualquier otro componente de Istio.
$ helm install istio-base istio/base -n istio-system --create-namespace --waitInstalar o actualizar las CRD de la API de Gateway de Kubernetes
Ten en cuenta que las CRD de la API de Gateway de Kubernetes no vienen instaladas por defecto en la mayoría de los clusteres de Kubernetes, así que asegúrate de que estén instaladas antes de usar la API de Gateway:
$ kubectl get crd gateways.gateway.networking.k8s.io &> /dev/null || \
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.3.0/standard-install.yamlcontrol plane istiod
El chart istiod instala una revisión de Istiod. Istiod es el componente del control plane que gestiona y
configura los proxies para enrutar el tráfico dentro de la mesh.
$ helm install istiod istio/istiod --namespace istio-system --set profile=ambient --waitAgente de nodo CNI
El chart cni instala el agente de nodo CNI de Istio. Es responsable de detectar los pods que pertenecen a la mesh ambient y de configurar la redirección del tráfico entre los pods y el proxy de nodo ztunnel (que se instalará más adelante).
$ helm install istio-cni istio/cni -n istio-system --set profile=ambient --waitInstalar el data plane
DaemonSet de ztunnel
El chart ztunnel instala el DaemonSet de ztunnel, que es el componente de proxy de nodo del modo ambient de Istio.
$ helm install ztunnel istio/ztunnel -n istio-system --waitgateway de entrada (opcional)
Para instalar una gateway de entrada, ejecuta el siguiente comando:
$ helm install istio-ingress istio/gateway -n istio-ingress --create-namespace --waitSi tu cluster de Kubernetes no admite el tipo de servicio LoadBalancer (type: LoadBalancer) con una IP externa adecuada asignada, ejecuta el comando anterior sin el parámetro --wait para evitar la espera infinita. Consulta Instalación de gateways para obtener documentación detallada sobre la instalación de gateways.
Configuración
Para ver las opciones de configuración admitidas y la documentación, ejecuta:
$ helm show values istio/istiodVerificar la instalación
Verificar el estado de el workload
Después de instalar todos los componentes, puedes verificar el estado del despliegue de Helm con:
$ 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.28.0 1.28.0
istio-cni istio-system 1 2024-04-17 22:14:45.964722028 +0000 UTC deployed cni-1.28.0 1.28.0
istiod istio-system 1 2024-04-17 22:14:45.964722028 +0000 UTC deployed istiod-1.28.0 1.28.0
ztunnel istio-system 1 2024-04-17 22:14:45.964722028 +0000 UTC deployed ztunnel-1.28.0 1.28.0Puedes verificar el estado de los pods desplegados con:
$ kubectl get pods -n istio-system
NAME READY STATUS RESTARTS AGE
istio-cni-node-g97z5 1/1 Running 0 10m
istiod-5f4c75464f-gskxf 1/1 Running 0 10m
ztunnel-c2z4s 1/1 Running 0 10mVerificar con la aplicación de ejemplo
Después de instalar el modo ambient con Helm, puedes seguir la guía Desplegar la aplicación de ejemplo para desplegar la aplicación de ejemplo y las gateways de entrada, y luego puedes agregar tu aplicación a la mesh ambient.
Desinstalar
Puedes desinstalar Istio y sus componentes desinstalando los charts instalados anteriormente.
Listar todos los charts de Istio instalados enel 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.28.0 1.28.0 istio-cni istio-system 1 2024-04-17 22:14:45.964722028 +0000 UTC deployed cni-1.28.0 1.28.0 istiod istio-system 1 2024-04-17 22:14:45.964722028 +0000 UTC deployed istiod-1.28.0 1.28.0 ztunnel istio-system 1 2024-04-17 22:14:45.964722028 +0000 UTC deployed ztunnel-1.28.0 1.28.0(Opcional) Eliminar cualquier instalación del chart de la gateway de Istio:
$ helm delete istio-ingress -n istio-ingress $ kubectl delete namespace istio-ingressEliminar el chart de ztunnel:
$ helm delete ztunnel -n istio-systemEliminar el chart de CNI de Istio:
$ helm delete istio-cni -n istio-systemEliminar el chart del control plane de istiod:
$ helm delete istiod -n istio-systemEliminar el chart base de Istio:
$ helm delete istio-base -n istio-systemEliminar las CRD instaladas por Istio (opcional)
$ kubectl get crd -oname | grep --color=never 'istio.io' | xargs kubectl deleteEliminarel namespace
istio-system:$ kubectl delete namespace istio-system
Generar 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 se pueda instalar con kubectl para el componente istiod:
$ helm template istiod istio/istiod -n istio-system --kube-version {Versión de Kubernetes del cluster de destino} > istiod.yamlEl manifiesto generado se puede usar para inspeccionar qué se instala exactamente, así como para realizar un seguimiento de 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