Configuración del complemento gestionado Istio

Istio on IBM Cloud® Kubernetes Service facilita la instalación de Istio, las actualizaciones automáticas y la gestión del ciclo de vida de los componentes de plano de control de Istio, además de la integración con las herramientas de registro y supervisión de la plataforma.

Eliminación de otras instalaciones Istio de un clúster

Si anteriormente instalaste Istio en el clúster utilizando el gráfico Helm de IBM o mediante otro método, elimina esa instalación de Istio antes de habilitar el complemento gestionado Istio.

Antes de empezar: Compruebe que Istio ya está instalado en el clúster. Ejecute kubectl get namespaces y busque el espacio de nombres istio-system en el resultado.

Para eliminar otras instalaciones de Istio:

  • Si ha instalado Istio utilizando el diagrama de Helm de Istio de IBM Cloud,

    1. Desinstale el despliegue de Helm de Istio.
        helm del istio --purge
        ```
    2. Si ha utilizado Helm 2.9 o anterior, suprima el recurso de trabajo adicional.
    ```sh {: pre}
        kubectl -n istio-system delete job --all
        ```
    3. El proceso de desinstalación puede durar hasta 10 minutos. Antes de instalar el complemento gestionado de Istio en el clúster, ejecute `kubectl get namespaces` y verifique que el espacio de nombres `istio-system` se ha eliminado.
    
    
  • Si has instalado Istio manualmente o has utilizado el gráfico Helm de la comunidad Istio, consulta la documentación sobre desinstalación en Istio.

  • Si ha instalado anteriormente BookInfo en el clúster, limpie estos recursos.

    1. Cambie el directorio a la ubicación de archivo de Istio.
        cd <filepath>/istio-1.29.5
        ```
    2. Suprima todos los servicios, pods y despliegues de BookInfo del clúster.
    ```sh {: pre}
        samples/bookinfo/platform/kube/cleanup.sh
        ```
    3. El proceso de desinstalación puede durar hasta 10 minutos. Antes de instalar el complemento gestionado de Istio en el clúster, ejecute `kubectl get namespaces` y verifique que el espacio de nombres `istio-system` se ha eliminado.
    
    
    
    

Instalación del complemento de Istio

En lugar de la comunidad Istio, puede instalar el complemento gestionado Istio.

Antes de empezar

Instalación del complemento de Istio desde la consola

  1. En el panel de control de tu clúster, haz clic en el nombre del clúster en el que deseas instalar el complemento Istio.

  2. Vaya a la sección Complementos.

  3. En la tarjeta de Istio gestionada, pulse Instalar.

  4. Vuelva a pulsar Instalar.

  5. En la tarjeta de Istio gestionado, verifique que aparece el complemento.

Instalación del complemento de Istio con la CLI

Inicie una sesión en la cuenta. If applicable, target the appropriate resource group. Establezca el contexto para el clúster.

  1. Actualiza el complemento container-service a la versión más reciente.

    ibmcloud update && ibmcloud plugin update container-service
    
  2. Revise las versiones de Istio soportadas.

    ibmcloud ks addon-versions --addon istio
    
  3. Habilite el complemento istio. Se ha instalado la versión predeterminada del complemento gestionado Istio, 1.29.5, disponible de forma generalizada.

    ibmcloud ks cluster addon enable istio --cluster CLUSTER_NAME_OR_ID
    
  4. Verifique que el complemento de Istio gestionado tenga el estado Addon Ready.

    ibmcloud ks cluster addon ls --cluster CLUSTER_NAME_OR_ID
    

    Salida de ejemplo

    NAME            Version     Health State   Health Status
    istio           1.29.5       normal         Addon Ready
    
  5. También puede consultar los componentes individuales del complemento para asegurarse de que se han desplegado los servicios de Istio y sus pods correspondientes.

    kubectl get svc -n istio-system
    
    kubectl get pods -n istio-system
    
  6. A continuación, puede incluir las apps en la red de servicios de Istio.

Instalación de la CLI istioctl

Instale el cliente de CLI de istioctl en el sistema. Para obtener más información, consulta el istioctl Referencia comando.

  1. Compruebe la versión de Istio que ha instalado en su clúster.
    istioctl version
    
  2. Descarga en tu ordenador la versión que istioctl coincida con la versión de Istio de tu clúster.
    curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.29.5 sh -
    
  3. Vaya al directorio del paquete de Istio.
    cd istio-1.29.5
    
  4. Usuarios de Linux y macOS: añada el cliente istioctl a la variable del sistema PATH.
    export PATH=$PWD/bin:$PATH
    

Personalización de la instalación de Istio

Puede personalizar un conjunto de opciones de configuración de Istio editando el recurso de mapa de configuración managed-istio-custom. Estos valores incluyen un control adicional sobre la supervisión, el registro y la red en el plano de control y la red de servicios.

  1. Describe el recurso ConfigMapmanaged-istio-custom para revisar su contenido y la documentación integrada.
    kubectl describe cm managed-istio-custom -n ibm-operators
    
  2. Edite el recurso de mapa de configuración managed-istio-custom.
    kubectl edit cm managed-istio-custom -n ibm-operators
    
  3. En la sección data, añada el par <key>: "<value>" de una o varias de las siguientes opciones de configuración.
istio-components-pilot-requests-cpu

Valor predeterminado: "500m" :
Configura la solicitud de CPU en CPU milli para el pod del componente istiod . Tenga cuidado al cambiar este valor. Si este valor se establece demasiado bajo, esto podría impedir que el plano de control funcionara correctamente y, si se establece demasiado alto, podría impedir la planificación del pod istiod.

istio-global-logging-level
Valor predeterminado: "default:info" : Defina el ámbito de los registros y el nivel de los mensajes de registro de los componentes del plano de control. Un ámbito representa un área funcional dentro de un componente del plano de control y cada ámbito da soporte a niveles de información de registro específicos. El ámbito de registro predeterminado (default), que es para mensajes de registro no categorizados, se aplica a todos los componentes del plano de control en el nivel de información (info) básico.
Para especificar niveles de registro para ámbitos de componentes individuales, incluya una lista separada por comas de ámbitos y niveles, como "<scope>:<level>,<scope>:<level>". Para consultar una lista de los ámbitos de cada componente del plano de control y el nivel de información de los mensajes de registro, véase la documentación sobre el registro de componentes de Istio. Para cambiar el nivel de registro del plano de datos, utiliza el comando istioctl proxy-config log <pod> --level <level>.
istio-global-outboundTrafficPolicy-mode

Valor predeterminado: "ALLOW_ANY" : De forma predeterminada, se permite todo el tráfico de salida de la malla de servicios. Para bloquear el tráfico de salida de la red de servicios a cualquier host que no esté definido en el registro de servicios o que no tenga una ServiceEntry dentro de la red de servicios, establezca REGISTRY_ONLY.

istio-global-proxy-accessLogFile

Valor predeterminado: "" : Los proxies de Envoy muestran información de acceso a su salida estándar. Estos registros son útiles al depurar problemas de entrada o de salida. Para ver esta información de acceso al ejecutar mandatos kubectl logs para los contenedores de Envoy, establezca "/dev/stdout".

istio-monitoring-telemetry

Valor predeterminado: "true" : De forma predeterminada, se habilita la métrica de telemetría y el soporte de Prometheus. Para eliminar cualquier problema de rendimiento asociado con las métricas de telemetría e inhabilitar todas las funciones de supervisión, establézcalo en "false".

istio-meshConfig-enableTracing

Valor predeterminado: "true" : De forma predeterminada, Istio genera intervalos de rastreo para 1 de cada 100 solicitudes. Para inhabilitar los intervalos de rastreo, establezca el valor en "false".

istio-pilot-traceSampling
Valor predeterminado: "1.0"
De forma predeterminada, Istio genera tramos de seguimiento para 1 de cada 100 solicitudes, lo que supone una tasa de muestreo del 1 %. Para generar más intervalos de rastreo, aumente el valor de porcentaje.
istio-components-pilot-hpa-maxReplicas

Valor predeterminado: "5" :
Por defecto,Istio establece en istiod 5 el número máximo de pods del escalador automático horizontal (HPA) predeterminado. No aumentes este valor a menos que tengas una malla de servicios de gran tamaño en la que se necesiten istiod más recursos para actualizar las configuraciones.

Por ejemplo, el mapa de configuración puede tener un aspecto similar al siguiente.

apiVersion: v1
data:
  istio-ingressgateway-zone-1: dal10
  <key: value> # such as istio-egressgateway-public-1-enabled: "false"
kind: ConfigMap
metadata:
  name: managed-istio-custom
  namespace: ibm-operators

¿No ve una opción de esta tabla en el mapa de configuración? Dado que el mapa de configuración contiene valores definidos por el usuario, el mapa de configuración no se actualizará con ninguna opción que se añada con el tiempo. En su lugar, puede realizar una copia de seguridad de una copia del mapa de configuración y suprimir el mapa de configuración del clúster. Después de unos 5 minutos, se crea un mapa de configuración predeterminado que contiene las nuevas opciones en el clúster. A continuación, puede copiar los valores configurados anteriormente de la copia de seguridad en este mapa de configuración predeterminado, configurar todos los nuevos valores y aplicar los cambios.

  1. Guarde y cierre el archivo de configuración.

  2. Si ha modificado los valores istio-global-logging-level o istio-global-proxy-accessLogFile, debe reiniciar los pods del plano de datos para aplicarles los cambios.

    1. Obtenga la lista de todos los pods del plano de control que no están en el espacio de nombres istio-system.
        istioctl version --short=false | grep "data plane version" | grep -v istio-system
        ```
        Salida de ejemplo
    
        ```sh {: screen}
        data plane version: version.ProxyInfo{ID:"test-6f86fc4677-vsbsf.default", IstioVersion:"1.29.5"}
        data plane version: version.ProxyInfo{ID:"rerun-xfs-f8958bb94-j6n89.default", IstioVersion:"1.29.5"}
        data plane version: version.ProxyInfo{ID:"test2-5cbc75859c-jh6bx.default", IstioVersion:"1.29.5"}
        data plane version: version.ProxyInfo{ID:"minio-test-78b5d4597d-hkpvt.default", IstioVersion:"1.29.5"}
        data plane version: version.ProxyInfo{ID:"sb-887f89d7d-7s8ts.default", IstioVersion:"1.29.5"}
        data plane version: version.ProxyInfo{ID:"gid-deployment-5dc86db4c4-kdshs.default", IstioVersion:"1.29.5"}
        ```
    2. Reinicie cada pod suprimiéndolo. En la salida del paso anterior, el nombre del pod y el espacio de nombres se listan en cada entrada como `data plane version: version.ProxyInfo{ID:"<pod_name>.<namespace>", IstioVersion:"1.29.5"}`.
    ```sh {: pre}
        kubectl delete pod <pod_name> -n <namespace>
        ```
    
¿Quieres cambiar una configuración de ConfigMap?
Si desea cambiar un valor añadido al mapa de configuración, puede utilizar un script de parche. Por ejemplo, si ha añadido el valor istio-global-proxy-accessLogFile: "/dev/stdout" y, más adelante, quiere cambiarlo de nuevo a "", puede ejecutar kubectl patch cm managed-istio-custom -n ibm-operators --type='json' -p='[{"op": "add", "path": "/data/istio-global-proxy-accessLogFile", "value":""}]'.
¿Necesitas depurar tu configuración de personalización en 1.24 o posterior?
Compruebe el helm value.yaml y los registros de resultados del helm en el configmap managed-istio-istiod-control-plane-values en el espacio de nombres ibm-operators. La página value.yaml le mostrará si su cambio ha sido añadido. Los resultados del timón le mostrarán si hubo algún error de sintaxis.
kubectl get cm -n ibm-operators managed-istio-istiod-control-plane-values -o json | jq -r .data.\"values.yaml\"
kubectl get cm -n ibm-operators managed-istio-istiod-control-plane-values -o json | jq -r .data.\"values.yaml.helm.result\"
Thu, 23 Oct 2025 19:58:48 GMT HELM_SUCCESS: Release "istiod" has been upgraded. Happy Helming!
NAME: istiod
LAST DEPLOYED: Thu Oct 23 19:58:42 2025
NAMESPACE: istio-system
STATUS: deployed
REVISION: 275
TEST SUITE: None
NOTES:
"istiod" successfully installed!
¿Necesitas depurar la configuración de tu personalización en 1.23?
Compruebe los registros del pod addon-istio-operator ( Istio versión 1.10 a 1.23 ) ejecutando kubectl logs -n ibm-operators -l name=managed-istio-operator. El operador de Istio valida y concilia los cambios de Istio personalizados que realice.

Si inhabilita el complemento de Istio, el mapa de configuración managed-istio-custom no se elimina durante la desinstalación. Al volver a habilitar el complemento de Istio, se aplica el mapa de configuración personalizado durante la instalación. Si no desea volver a utilizar los valores personalizados en una instalación posterior de Istio, debe suprimir el mapa de configuración después de inhabilitar el complemento de Istio ejecutando kubectl delete cm -n ibm-operators managed-istio-custom. Cuando vuelva a habilitar el complemento de Istio, se aplicará el mapa de configuración predeterminado durante la instalación.

Migración del complemento Istio a la comunidad Istio

Si está utilizando el complemento gestionado Istio versiones 1.21 a 1.23, puede migrar a una versión posterior de la comunidad Istio en su lugar.

Antes de empezar: Si ya no necesita Istio, puede desinstalar el complemento sin instalar la comunidad Istio en lugar de seguir estos pasos.

Paso 1: Desactivar el complemento Istio desde la consola

Desactiva el complemento desde la consola o la CLI.

  1. En el panel de control de tu clúster, haz clic en el nombre del clúster del que deseas eliminar el complemento Istio.

  2. Vaya a la sección Complementos.

  3. En la tarjeta de Istio gestionado, pulse el icono de menú Acción.

  4. Pulse Desinstalar. El complemento Istio gestionado está desactivado en este clúster.

  5. En la tarjeta de Istio gestionada, verifique que el complemento que ha desinstalado ya no aparece en la lista.

Paso 1: Desactivar los complementos de Istio desde la CLI

Desactive el complemento y compruebe que no queda ningún complemento adicional de Istio.

  1. Inhabilite el complemento istio.
    ibmcloud ks cluster addon disable istio --cluster CLUSTER_NAME_OR_ID -f
    
  2. Verifique que todos los complementos de Istio gestionados están inhabilitados en este clúster. No se devuelve ningún complemento de Istio en la salida.
    ibmcloud ks cluster addon ls --cluster CLUSTER_NAME_OR_ID
    
  3. Espere 10 minutos antes de continuar con el paso siguiente. Esto nos da tiempo para desgestionar el operador Istio.

Paso 2: Reducir la escala del operador Istio

Reducir la escala de la implementación del operador Istio. Al migrar de la utilización por parte del complemento Istio del operador in-cluster Istio a la utilización por parte de la comunidad Istio de istioctl, debe evitar que ambos métodos de instalación luchen por el control de Istio. Los pasos de reducir el operador, borrar los IOP y, a continuación, borrar el operador eliminan el operador dentro del clúster sin desinstalar Istio.

Ejecute el mandato siguiente:

kubectl scale deployment -n ibm-operators addon-istio-operator --replicas=0

Paso 3: Ahorrar recursos

Guarda todos los recursos que hayas creado o modificado en el espacio istio-system de nombres, así como todos los recursos de Kubernetes generados automáticamente por definiciones de recursos personalizados (CRD).

  1. Guarde el managed-istio-custom ConfigMap para resolver un problema o para volver a instalar el complemento más adelante.

    kubectl get cm -n ibm-operators managed-istio-custom -o yaml > Customizations.yaml
    
  2. Guarde todos los CR IstioOperator (IOP). El operador in-cluster Istio tiene un finalizador en los IOPs para evitar que se borren hasta que el operador in-cluster borre los recursos que están definidos en los IOPs. Como parte de la eliminación del operador Istio sin eliminar Istio, debe eliminar los finalizadores.

    • Listar los recursos de IOP:
        kubectl get iop -A
        ```
    - Para cada recurso IOP de la lista, elimine el finalizador.
    
        Ejemplo de utilización de `managed-istio` IOP:
        ```sh {: pre}
        kubectl patch -n ibm-operators istiooperator/managed-istio --type json --patch='[ { "op": "remove", "path": "/metadata/finalizers" } ]'
        ```
    - Para cada recurso de IOP listado, guarde cada uno en un archivo:
    ```sh {: pre}
        kubectl get iop -n <IOP_namespace> <IOP_name> -o yaml > <IOP_name>.yaml
        ```
    
  3. Espere 10 minutos antes de continuar con el paso siguiente.

Paso 4: Cambiar el instalador de los IOPs

Borrar todos los recursos del operador Istio (IOP), como por ejemplo para una pasarela de entrada personalizada.

  1. Asegúrese de que su herramienta istioctl cli tiene la versión de parche necesaria.

    istioctl version
    
  2. Para cada archivo IOP que haya guardado en el paso anterior, ejecute el comando istioctl upgrade para actualizar Istio a la versión que coincida con la versión istioctl. Este comando también cambia el mecanismo de instalación y actualización, que pasa de utilizar el operador in-cluster a istioctl.

    istioctl upgrade -f <filename>.yaml
    

Paso 5: Retirar el operador Istio y los IOPs

Elimine la implantación del operador Istio, la cuenta de servicio, la vinculación de la función de clúster, la función de clúster y todos los IOP. Istio se transfirió del operador del grupo Istio a la instalación basada en istioctl. Ahora puede limpiar los restos de la instalación del operador en el clúster Istio mientras se reduce.

  1. Ejecute los siguientes comandos para eliminar la implantación del operador Istio:

    kubectl delete deployment -n ibm-operators addon-istio-operator --ignore-not-found=true
    kubectl delete serviceaccount -n ibm-operators addon-istio-operator --ignore-not-found=true
    kubectl delete clusterrolebinding addon-istio-operator --ignore-not-found=true
    kubectl delete clusterrole addon-istio-operator --ignore-not-found=true
    
  2. Borra los IOP.

    • Listar los recursos de IOP:
        kubectl get iop -A
        ```
    - Para cada recurso IOP de la lista, elimínelo:
    ```sh {: pre}
        kubectl delete IstioOperator <resource_name> -n <namespace>
        ```
    

Paso 6: Retirar el ConfigMap

Como el ConfigMap se guardó antes, puede eliminarse.

Retire el managed-istio-custom ConfigMap.

kubectl delete cm -n ibm-operators managed-istio-custom

La eliminación del complemento se ha completado y puede seguir utilizando y actualizando la comunidad Istio según sea necesario.

Desinstalación del complemento Istio

Si ya ha terminado de trabajar con Istio, puede limpiar los recursos de Istio de su clúster y desinstalar los complementos de Istio.

Paso 1: Guardar recursos antes de la desinstalación

Los recursos que haya creado o modificado en el espacio de nombres istio-system se eliminarán. Para conservar estos recursos, guárdalos antes de desinstalar el complemento Istio.

  1. Guarde el managed-istio-custom ConfigMap para resolver un problema o para volver a instalar el complemento más adelante.

    kubectl get cm -n ibm-operators managed-istio-custom -o yaml > Customizations.yaml
    
  2. Para la versión 1.23 y anteriores, guarde todas las CR (IOP) de IstioOperator.

    a. Listar los recursos de IOP:

    kubectl get iop -A
    

    b. Para cada recurso de IOP listado, guarde cada uno en un archivo:

    kubectl get iop -n <IOP_namespace> <IOP_name> -o yaml > <IOP_name>.yaml
    

Paso 2: Desinstalación del complemento de Istio

Desinstale el complemento desde la consola o desde la CLI. Para Istio 1.20 y versiones anteriores, cualquier recurso de operador personalizado Istio (IOP) se elimina automáticamente.

Desinstalación del complemento de Istio desde la consola

  1. En el panel de control de tu clúster, haz clic en el nombre del clúster del que deseas eliminar el complemento Istio.

  2. Vaya a la sección Complementos.

  3. En la tarjeta de Istio gestionado, pulse el icono de menú Acción.

  4. Pulse Desinstalar. El complemento de Istio gestionado se inhabilita en este clúster y todos los recursos de Istio de este clúster se eliminan.

  5. En la tarjeta de Istio gestionada, verifique que el complemento que ha desinstalado ya no aparece en la lista.

Desinstalación del complemento Istio desde la CLI

Si no ha instalado los complementos istio-sample-bookinfo e istio-extras en desuso, omita los pasos 1 y 2.

  1. Inhabilite el complemento istio-sample-bookinfo.
    ibmcloud ks cluster addon disable istio-sample-bookinfo --cluster CLUSTER_NAME_OR_ID
    
  2. Inhabilite el complemento istio-extras.
    ibmcloud ks cluster addon disable istio-extras --cluster CLUSTER_NAME_OR_ID
    
  3. Inhabilite el complemento istio.
    ibmcloud ks cluster addon disable istio --cluster CLUSTER_NAME_OR_ID -f
    
  4. Verifique que todos los complementos de Istio gestionados están inhabilitados en este clúster. No se devuelve ningún complemento de Istio en la salida.
    ibmcloud ks cluster addon ls --cluster CLUSTER_NAME_OR_ID
    

Paso 3: Eliminar recursos

Después de guardar los recursos y de que el complemento esté inhabilitado, los recursos se pueden eliminar.

  1. El mapa de configuración managed-istio-custom no se elimina durante la desinstalación. Si posteriormente vuelve a habilitar el complemento de Istio, durante la instalación se aplicarán los valores personalizados que haya realizado en el mapa de configuración. Si no desea volver a utilizar los valores personalizados en una instalación posterior de Istio, debe suprimir el mapa de configuración.

    kubectl delete cm -n ibm-operators managed-istio-custom
    
  2. Para la versión 1.23 y anteriores, elimine los recursos del operador personalizado Istio (IOP) y el IOP.

    a. Suprima los recursos de operador de Istio (IOP) personalizados que ha creado, como por ejemplo para una pasarela ingress personalizada. Cuando se ejecuta este mandato, el operador de Istio elimina automáticamente los recursos que ha creado el recurso de IOP, como despliegues o servicios.

    kubectl delete IstioOperator <resource_name> -n <namespace>
    

    b. Borre el IOP managed-istio.

    kubectl delete iop -n ibm-operators managed-istio
    
  3. Para la versión 1.24 y posteriores, guarde y luego elimine la pasarela addon-istio ConfigMaps, elimine las pasarelas personalizadas, y elimine el plano de control Istio.

    a. Guarde la pasarela addon-istio ConfigMaps.

    kubectl get cm -n ibm-operators managed-istio-ingressgateway-values -o json | jq -r .data.\"values.yaml\" > ingress-gateway.values
    kubectl get cm -n ibm-operators managed-istio-egressgateway-values -o json | jq -r .data.\"values.yaml\" > egress-gateway.values
    

    b. Borre la pasarela addon-istio ConfigMaps.

    kubectl delete cm -n ibm-operators managed-istio-egressgateway-values
    kubectl delete cm -n ibm-operators managed-istio-ingressgateway-values
    

    c. Eliminar las pasarelas personalizadas.

    d. Borrar el plano de control Istio.

    istioctl uninstall -y --purge
    

    Salida:

    All Istio resources will be pruned from the cluster
    Removed apps/v1, Kind=Deployment/istiod.istio-system.
    Removed /v1, Kind=Service/istiod.istio-system.
    Removed /v1, Kind=ConfigMap/istio.istio-system.
    Removed /v1, Kind=ConfigMap/istio-sidecar-injector.istio-system.
    Removed /v1, Kind=Pod/istiod-7f59b54bfd-p5f4d.istio-system.
    Removed /v1, Kind=Pod/istiod-7f59b54bfd-zckw6.istio-system.
    Removed policy/v1, Kind=PodDisruptionBudget/istiod.istio-system.
    Removed autoscaling/v2, Kind=HorizontalPodAutoscaler/istiod.istio-system.
    Removed admissionregistration.k8s.io/v1, Kind=MutatingWebhookConfiguration/istio-sidecar-injector..
    ✔ Uninstall complete
    
  4. Espere 10 minutos antes de continuar con el paso siguiente.

Paso 4: Eliminar el operador Istio

Para la versión 1.23 y anteriores, después de desinstalar completamente el complemento, puede eliminar el operador Istio.

Suprima el despliegue del operador de Istio, la cuenta de servicio, el enlace de rol de clúster y el rol de clúster.

kubectl delete deployment -n ibm-operators addon-istio-operator --ignore-not-found=true
kubectl delete serviceaccount -n ibm-operators addon-istio-operator --ignore-not-found=true
kubectl delete clusterrolebinding addon-istio-operator --ignore-not-found=true
kubectl delete clusterrole addon-istio-operator --ignore-not-found=true