IBM Cloud Docs
Configuración de Istio

Configuración de Istio

Configuración del complemento gestionado de 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.

Instalación del complemento de Istio

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

Antes de empezar

Instalación del complemento de Istio desde la consola

  1. En el panel de control del clúster, haga clic en el nombre del clúster en el que desea 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. Revise las versiones de Istio soportadas.

    ibmcloud ks addon-versions --addon istio
    
  2. Habilite el complemento istio. Se instala la versión por defecto del complemento gestionado de Istio disponible de forma general, 1.23.5.

    ibmcloud ks cluster addon enable istio --cluster <cluster_name_or_ID>
    
  3. 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.23.5       normal         Addon Ready
    
  4. 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
    
  5. A continuación, puede incluir las apps en la red de servicios de Istio.

Actualización del complemento de Istio

Actualice el complemento de Istio, probado por IBM Cloud y aprobado para su uso en IBM Cloud Kubernetes Service.

No utilice istioctl para actualizar la versión de Istio que ha instalado el complemento gestionado. Utilice únicamente los pasos siguientes para actualizar el complemento de Istio gestionado, que incluye una actualización de la versión de Istio.

Para actualizar desde versiones no soportadas del complemento de Istio, actualice los componentes de Istio a la última versión de parche soportada por IBM Cloud Kubernetes Service.

Actualización de la versión menor del complemento de Istio

IBM Cloud mantiene actualizados todos los componentes de Istio mediante la actualización automática de parches a la versión más reciente de Istio a la que da soporte IBM Cloud Kubernetes Service. Para actualizar los componentes de Istio a la siguiente versión menor de Istio que está soportada por IBM Cloud Kubernetes Service, por ejemplo de la versión 1.9 a la 1.10, debe actualizar manualmente el complemento. Sólo puede actualizar Istio manualmente en las versiones de una en una.

Sólo puede actualizar el complemento de Istio manualmente en las versiones de una en una. Si desea actualizar el complemento de Istio en dos o más versiones, puede repetir el proceso de actualización manual, o bien desinstalar y eliminar el complemento y luego volver a instalarlo con una versión posterior.

Al actualizar los componentes de control de Istio en el espacio de nombres istio-system a la versión menor más reciente, es posible que experimente cambios disruptivos. Revise los cambios siguientes que se producen durante una actualización de versión menor.

  • A medida que se despliegan las actualizaciones en los pods del plano de control, se van volviendo a crear los pods. El plano de control de Istio no está completamente disponible hasta que finaliza la actualización.
  • El plano de datos de Istio sigue funcionando durante la actualización. Sin embargo, parte del tráfico destinado a las apps de la red de servicios podría verse interrumpido durante un breve periodo de tiempo.
  • La dirección IP externa correspondiente al equilibrador de carga istio-ingressgateway no cambia durante ni después de la actualización.

No puede revertir el complemento gestionado de Istio a una versión anterior. Si desea volver a una versión menor anterior, debe desinstalar el complemento y luego volver a instalar el complemento especificando la versión anterior.

  1. Revise la versión actual del complemento de Istio.

    kubectl get iop managed-istio -n ibm-operators -o jsonpath='{.metadata.annotations.version}'
    
  2. Revise las versiones del complemento de Istio disponibles.

    ibmcloud ks addon-versions
    
  3. Revise los cambios que hay en cada versión en el registro de cambios del complemento Istio.

  4. Si va a actualizar de la versión 1.11 a la versión 1.12 y los componentes de Istio se han suministrado en la versión 1.10 o anterior:

    1. Ejecute el mandato para obtener los detalles de las configuraciones de webhook de mutación.

      kubectl get mutatingwebhookconfigurations
      

      Salida de ejemplo

      NAME                     WEBHOOKS   AGE
      istio-sidecar-injector   5          32m
      
    2. En la salida, busque istio-sidecar-injector y revise la columna WEBHOOKS. Si hay 5 o más webhooks, ejecute el mandato siguiente para suprimir los webhooks adicionales.

      kubectl delete mutatingwebhookconfigurations istio-sidecar-injector && kubectl rollout restart deploy addon-istio-operator -n ibm-operators
      

      Salida de ejemplo

      mutatingwebhookconfiguration.admissionregistration.k8s.io "istio-sidecar-injector" deleted
      
    3. Compruebe que se han suprimido los webhooks adicionales. Obtenga los detalles de las configuraciones de webhook de mutación y verifique que haya 4 webhooks istio-sidecar-injector.

      kubectl get mutatingwebhookconfigurations
      

      Salida de ejemplo

      NAME                     WEBHOOKS   AGE
      istio-sidecar-injector   4          60s
      
    4. Ejecute el mandato para obtener los detalles de la configuración de webhook de validación.

      kubectl get validatingwebhookconfigurations
      

      Salida de ejemplo

      NAME                           WEBHOOKS   AGE
      istio-validator-istio-system   2          66s
      istiod-istio-system            1          31m
      
    5. Revise la salida. Si el webhook istiod-istio-system aparece en la lista, ejecute el mandato siguiente para suprimirlo.

      kubectl delete ValidatingWebhookConfiguration istiod-istio-system
      

      Salida de ejemplo

      validatingwebhookconfiguration.admissionregistration.k8s.io "istiod-istio-system" deleted
      
    6. Verifique que el webhook istiod-istio-system ya no aparezca en la lista.

      kubectl get validatingwebhookconfigurations
      

      Salida de ejemplo

      NAME                           WEBHOOKS   AGE
      istio-validator-istio-system   2          2m
      
  5. Actualice el complemento de Istio.

    ibmcloud ks cluster addon update istio --version <version> -c <cluster_name_or_ID>
    
  6. Antes de continuar, confirme que la actualización se ha completado.

    El proceso de actualización puede tardar hasta 20 minutos en completarse.

    1. Asegúrese de que el Estado del complemento de Istio sea normal y que el Estado indique que el complemento está preparado (Addon Ready). Si el estado es updating, significa que la actualización aún no ha finalizado.

      ibmcloud ks cluster addon ls --cluster <cluster_name_or_ID>
      
    2. Asegúrese de que los pods del componente del plano de control en el espacio de nombres istio-system tengan el STATUS Running.

      kubectl get pods -n istio-system
      
      NAME                                                     READY   STATUS    RESTARTS   AGE
      istio-system    istio-egressgateway-6d4667f999-gjh94     1/1     Running     0          61m
      istio-system    istio-egressgateway-6d4667f999-txh56     1/1     Running     0          61m
      istio-system    istio-ingressgateway-7bbf8d885-b9xgp     1/1     Running     0          61m
      istio-system    istio-ingressgateway-7bbf8d885-xhkv6     1/1     Running     0          61m
      istio-system    istiod-5b9b5bfbb7-jvcjz                  1/1     Running     0          60m
      istio-system    istiod-5b9b5bfbb7-khcht                  1/1     Running     0          60m
      
  7. Actualice el cliente istioctl y los complementos.

Actualización del cliente istioctl y de los complementos

Siempre que se actualice el complemento gestionado de Istio, actualice el cliente istioctl y los complementos de Istio para la app.

Por ejemplo, puede que IBM Cloud Kubernetes Service actualice automáticamente la versión de parche o puede actualizar la versión menor del complemento. En cualquiera de los casos, actualice el cliente istioctl y los complementos de Istio existentes de la app para que coincidan con la versión de Istio del complemento.

  1. Obtenga la versión del cliente istioctl y los componentes del plano de control del complemento de Istio.

    istioctl version --short=false
    

    Salida de ejemplo

    client version: version.BuildInfo{Version:"1.11.2"}
    pilot version: version.BuildInfo{Version:1.23.5}
    pilot version: version.BuildInfo{Version:1.23.5}
    data plane version: version.ProxyInfo{ID:"istio-egressgateway-77bf75c5c-vp97p.istio-system", IstioVersion:1.23.5}
    data plane version: version.ProxyInfo{ID:"istio-egressgateway-77bf75c5c-qkhgm.istio-system", IstioVersion:1.23.5}
    data plane version: version.ProxyInfo{ID:"istio-ingressgateway-6dcb67b64d-dffhq.istio-system", IstioVersion:1.23.5}
    data plane version: version.ProxyInfo{ID:"httpbin-74fb669cc6-svc8x.default", IstioVersion:1.23.5}
    data plane version: version.ProxyInfo{ID:"istio-ingressgateway-6dcb67b64d-cs9r9.istio-system", IstioVersion:1.23.5}
    ...
    
  2. En la salida, compare la client version (istioctl) con la versión de los componentes del plano de control de Istio, como por ejemplo pilot version. Si no coinciden las versiones de componente de plano de control y client version:

    1. Descargue el cliente istioctl de la misma versión que los componentes del plano de control.

      curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.23.5 sh -
      
    2. Vaya al directorio del paquete de Istio.

      cd istio-1.23.5
      
    3. Usuarios de Linux y macOS: añada el cliente istioctl a la variable del sistema PATH.

      export PATH=$PWD/bin:$PATH
      
  3. En la salida del paso 1, compare la pilot version con la data plane version para cada pod del plano de datos.

    • Si la pilot version y la data plane version coinciden, no es necesario realizar ninguna otra actualización.
    • Si pilot version y data plane version no coinciden, reinicie los despliegues para los pods de plano de datos que ejecutan la versión antigua. 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.8.4"}.
    kubectl rollout restart deployment <deployment> -n <namespace>
    

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. Describa el recurso managed-istio-custom ConfigMap para revisar su contenido y la documentación en línea.

    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"
    Configure la solicitud de CPU en milli CPU para el pod de componentes 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"
    Define el ámbito de los registros y el nivel de los mensajes de registro para 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 obtener una lista de los ámbitos de cada componente del plano de control y el nivel de información de los mensajes de registro, consulte la documentación de registro de componentes de Istio. Para cambiar el nivel de registro del plano de datos, utilice 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 red 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-egressgateway-public-1-enabled
    Valor predeterminado: "true"
    Para desactivar la puerta de enlace de salida predeterminada de Istio, establezca "false". Por ejemplo, puede crear una pasarela de salida personalizada en su lugar.
    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-ingressgateway-public-1|2|3-enabled
    Valor predeterminado: "true" solo en la zona 1.
    Para aumentar la disponibilidad de las aplicaciones, establezca el valor en "true" para cada zona en la que desee crear un equilibrador de carga de istio-ingressgateway público. Para utilizar pasarelas de entrada personalizadas en lugar de la pasarela de entrada predeterminada, puede establecer el valor en "false".
    istio-ingressgateway-zone-1|2|3
    Valor predeterminado: "<zone>"
    Las zonas donde se despliegan los nodos trabajadores, que se rellenan automáticamente al instalar el complemento y siempre que se aplica una actualización de parche de Istio. Estos campos aplican las zonas del clúster a los campos istio-ingressgateway-public-1|2|3-enabled. Tenga en cuenta que si las zonas que aparecen en esta configuración no están sincronizadas con las zonas de su clúster, puede reiniciar el trabajo de población automática ejecutando kubectl delete pod -n ibm-system -l addon.cleanup=istio y kubectl delete job -n ibm-system -l addon.cleanup=istio.
    istio-monitoring-telemetry
    Valor predeterminado: "true"
    De forma predeterminada, las métricas de telemetría y el soporte para Prometheus están habilitados. 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 el rastreo de 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 intervalos de rastreo para 1 de cada 100 solicitudes, que es una frecuencia 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 el máximo de pods de autoescalado horizontal (HPA) para istiod en 5. No aumente este valor a menos que tenga una malla de servicios grande en la que istiod necesite 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.

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

  5. 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

      data plane version: version.ProxyInfo{ID:"test-6f86fc4677-vsbsf.default", IstioVersion:"1.23.5"}
      data plane version: version.ProxyInfo{ID:"rerun-xfs-f8958bb94-j6n89.default", IstioVersion:"1.23.5"}
      data plane version: version.ProxyInfo{ID:"test2-5cbc75859c-jh6bx.default", IstioVersion:"1.23.5"}
      data plane version: version.ProxyInfo{ID:"minio-test-78b5d4597d-hkpvt.default", IstioVersion:"1.23.5"}
      data plane version: version.ProxyInfo{ID:"sb-887f89d7d-7s8ts.default", IstioVersion:"1.23.5"}
      data plane version: version.ProxyInfo{ID:"gid-deployment-5dc86db4c4-kdshs.default", IstioVersion:"1.23.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.23.5"}.

      kubectl delete pod <pod_name> -n <namespace>
      
¿Quieres cambiar un ajuste 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":""}]'.
¿Necesita depurar su configuración de personalización?
Compruebe los registros del pod addon-istio-operator (versión de Istio 1.10 o posterior) o managed-istio-operator (versión de Istio 1.9 o anterior) 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.

Desinstalación del complemento de Istio

Si ha terminado de trabajar con Istio, puede limpiar los recursos de Istio en 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árdelos 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. Guarde todos los CR IstioOperator (IOP).

    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 anteriores, los recursos de operador de Istio (IOP) personalizados se suprimen automáticamente.

Desinstalación del complemento de Istio desde la consola
  1. En el panel de control del clúster, haga clic en el nombre del clúster en el que desea 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 de los complementos de 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. 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>
    
  3. Para Istio 1.21 y posterior, suprima el IOP managed-istio.

    kubectl delete iop -n ibm-operators managed-istio
    
  4. Espere 10 minutos antes de continuar con el paso siguiente.

Paso 4: Eliminar el operador Istio

Después de desinstalar completamente el complemento, puede eliminar el operador de 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

Desinstalación de otras instalaciones de Istio en el clúster

Si ha instalado anteriormente Istio en el clúster mediante el diagrama de Helm de IBM o por otro método, limpie la instalación de Istio antes de habilitar el complemento de Istio gestionado en el clúster. Para comprobar si Istio ya se encuentra en un clúster, ejecute kubectl get namespaces y busque el espacio de nombres istio-system en la salida.

  • 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.
      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 instaló Istio manualmente o utilizó la tabla de la comunidad de Istio Helm, consulte la documentación de desinstalación de 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.23.5
      
    2. Suprima todos los servicios, pods y despliegues de BookInfo del clúster.
      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.

Resolución de problemas del complemento de Istio

Para resolver algunos problemas comunes que puede encontrar cuando se utiliza el complemento de Istio gestionado, consulte Resolución de problemas de complementos gestionados.

Instalación de la CLI istioctl

Instale el cliente de CLI de istioctl en el sistema. Para más información, consulte la referencia del comando istioctl.

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

Migración del complemento de Istio 1.21 a la comunidad Istio 1.21

Puede migrar a utilizar el Istio de comunidad en lugar del complemento de Istio gestionado.

Antes de empezar

Paso 1: Inhabilitación del complemento de Istio desde la consola

Desactiva el complemento desde la consola o CLI.

  1. En el panel de control del clúster, haga clic en el nombre del clúster en el que desea 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 está inhabilitado 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: Inhabilitación de los complementos de Istio desde la CLI

Inhabilite el complemento y verifique que no quedan complementos de Istio adicionales.

  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 desmanejar el operador istio.

Paso 2: Reducir el operador Istio

Reduzca el despliegue del operador Istio.

Ejecute el mandato siguiente:

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

Paso 3: Guardar recursos

Guarde todos los recursos que haya creado o modificado en el espacio de nombres istio-system y todos los recursos Kubernetes generados automáticamente por definiciones de recursos personalizadas (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).

    • Listar los recursos de IOP:
      kubectl get iop -A
      
    • Para cada recurso IOP de la lista, elimine el finalizador. Ejemplo de utilización del IOP managed-istio :
      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:
      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 IOP

Suprima todos los recursos de operador de 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 de IOP que haya guardado en el paso anterior, ejecute el mandato upgrade.

    istioctl upgrade -f <filename>.yaml
    

Paso 5: Eliminar el operador Istio y los IOPs

Elimine el despliegue del operador Istio, la cuenta de servicio, la vinculación del rol de clúster, el rol de clúster y todos los IOP.

  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:
      kubectl delete IstioOperator <resource_name> -n <namespace>
      

Paso 6: Eliminar el ConfigMap

Debido a que el ConfigMap se ha guardado anteriormente, se puede eliminar.

Elimine 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 el Istio de comunidad según sea necesario.