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
- Asegúrese de que dispone de la función de acceso al servicio IAM Writer o Manager IBM Cloud para IBM Cloud Kubernetes Service.
- Cree un clúster de Kubernetes estándar con al menos 3 nodos trabajadores con 4 núcleos y 16 GB de memoria (
b3c.4x16
) o más cada uno. - No puede ejecutar Istio de comunidad al mismo tiempo que el complemento gestionado de Istio en el clúster. Si utiliza un clúster existente y ha instalado previamente Istio en el clúster mediante el diagrama de Helm de IBM o con otro método, limpie la instalación de Istio.
- Clústeres multizona clásicos: Asegúrese de habilitar un Virtual Routing and Forwarding(VRF) para la cuenta de infraestructura de IBM Cloud. Para habilitar VRF,
consulte Habilitación de VRF. Para comprobar si un VRF ya está habilitado, utilice el mandato
ibmcloud account show
. Si no puede o no desea habilitar VRF, habilite Expansión de VLAN. Para realizar esta acción, necesita el permiso Administrar infraestructura de expansión de VLAN de red, o puede solicitarle al propietario de la cuenta que lo habilite. Para comprobar si el spanning de VLAN ya está activado, utilice el comandoibmcloud ks vlan spanning get --region <region>
.
Instalación del complemento de Istio desde la consola
-
En el panel de control del clúster, haga clic en el nombre del clúster en el que desea instalar el complemento Istio.
-
Vaya a la sección Complementos.
-
En la tarjeta de Istio gestionada, pulse Instalar.
-
Vuelva a pulsar Instalar.
-
En la tarjeta de Istio gestionado, verifique que aparece el complemento.
Instalación del complemento de Istio con la CLI
-
Revise las versiones de Istio soportadas.
ibmcloud ks addon-versions --addon istio
-
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>
-
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
-
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
-
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.
-
Revise la versión actual del complemento de Istio.
kubectl get iop managed-istio -n ibm-operators -o jsonpath='{.metadata.annotations.version}'
-
Revise las versiones del complemento de Istio disponibles.
ibmcloud ks addon-versions
-
Revise los cambios que hay en cada versión en el registro de cambios del complemento Istio.
-
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:
-
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
-
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
-
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
-
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
-
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
-
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
-
-
Actualice el complemento de Istio.
ibmcloud ks cluster addon update istio --version <version> -c <cluster_name_or_ID>
-
Antes de continuar, confirme que la actualización se ha completado.
El proceso de actualización puede tardar hasta 20 minutos en completarse.
-
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 esupdating
, significa que la actualización aún no ha finalizado.ibmcloud ks cluster addon ls --cluster <cluster_name_or_ID>
-
Asegúrese de que los pods del componente del plano de control en el espacio de nombres
istio-system
tengan el STATUSRunning
.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
-
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.
-
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} ...
-
En la salida, compare la
client version
(istioctl
) con la versión de los componentes del plano de control de Istio, como por ejemplopilot version
. Si no coinciden las versiones de componente de plano de control yclient version
:-
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 -
-
Vaya al directorio del paquete de Istio.
cd istio-1.23.5
-
Usuarios de Linux y macOS: añada el cliente
istioctl
a la variable del sistemaPATH
.export PATH=$PWD/bin:$PATH
-
-
En la salida del paso 1, compare la
pilot version
con ladata plane version
para cada pod del plano de datos.- Si la
pilot version
y ladata plane version
coinciden, no es necesario realizar ninguna otra actualización. - Si
pilot version
ydata 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 comodata plane version: version.ProxyInfo{ID:"<pod_name>.<namespace>", IstioVersion:"1.8.4"}
.
kubectl rollout restart deployment <deployment> -n <namespace>
- Si la
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.
-
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
-
Edite el recurso de mapa de configuración
managed-istio-custom
.kubectl edit cm managed-istio-custom -n ibm-operators
-
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 componentesistiod
. 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 podistiod
.
- Valor predeterminado:
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 comandoistioctl proxy-config log <pod> --level <level>
.
- Valor predeterminado:
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, establezcaREGISTRY_ONLY
.
- Valor predeterminado:
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.
- Valor predeterminado:
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"
.
- Valor predeterminado:
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 deistio-ingressgateway
público. Para utilizar pasarelas de entrada personalizadas en lugar de la pasarela de entrada predeterminada, puede establecer el valor en"false"
.
- Valor predeterminado:
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 ejecutandokubectl delete pod -n ibm-system -l addon.cleanup=istio
ykubectl delete job -n ibm-system -l addon.cleanup=istio
.
- Valor predeterminado:
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"
.
- Valor predeterminado:
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"
.
- Valor predeterminado:
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.
- Valor predeterminado:
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 queistiod
necesite más recursos para actualizar las configuraciones.
- Valor predeterminado:
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.
-
Guarde y cierre el archivo de configuración.
-
Si ha modificado los valores
istio-global-logging-level
oistio-global-proxy-accessLogFile
, debe reiniciar los pods del plano de datos para aplicarles los cambios.-
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"}
-
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 ejecutarkubectl 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) omanaged-istio-operator
(versión de Istio 1.9 o anterior) ejecutandokubectl 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.
-
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
-
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
-
En el panel de control del clúster, haga clic en el nombre del clúster en el que desea eliminar el complemento Istio.
-
Vaya a la sección Complementos.
-
En la tarjeta de Istio gestionado, pulse el icono de menú Acción.
-
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.
-
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.
- Inhabilite el complemento
istio-sample-bookinfo
.ibmcloud ks cluster addon disable istio-sample-bookinfo --cluster <cluster_name_or_ID>
- Inhabilite el complemento
istio-extras
.ibmcloud ks cluster addon disable istio-extras --cluster <cluster_name_or_ID>
- Inhabilite el complemento
istio
.ibmcloud ks cluster addon disable istio --cluster <cluster_name_or_ID> -f
- 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.
-
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
-
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>
-
Para Istio 1.21 y posterior, suprima el IOP
managed-istio
.kubectl delete iop -n ibm-operators managed-istio
-
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,
- Desinstale el despliegue de Helm de Istio.
helm del istio --purge
- Si ha utilizado Helm 2.9 o anterior, suprima el recurso de trabajo adicional.
kubectl -n istio-system delete job --all
- 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 nombresistio-system
se ha eliminado.
- Desinstale el despliegue de Helm de Istio.
-
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.
- Cambie el directorio a la ubicación de archivo de Istio.
cd <filepath>/istio-1.23.5
- Suprima todos los servicios, pods y despliegues de BookInfo del clúster.
samples/bookinfo/platform/kube/cleanup.sh
- 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 nombresistio-system
se ha eliminado.
- Cambie el directorio a la ubicación de archivo de Istio.
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
.
- Compruebe la versión de Istio que ha instalado en el clúster.
istioctl version
- 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 -
- Vaya al directorio del paquete de Istio.
cd istio-1.23.5
- Usuarios de Linux y macOS: añada el cliente
istioctl
a la variable del sistemaPATH
.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
- Si utiliza una versión anterior a 1.21, actualice el complemento de Istio a la versión 1.21. Esta actualización es importante porque con esta versión, la inhabilitación del complemento no elimina los recursos personalizados como sucede con las versiones anteriores.
- Si ya no necesita Istio, puede desinstalar el complemento sin instalar el Istio de comunidad en lugar de completar este paso.
Paso 1: Inhabilitación del complemento de Istio desde la consola
Desactiva el complemento desde la consola o CLI.
-
En el panel de control del clúster, haga clic en el nombre del clúster en el que desea eliminar el complemento Istio.
-
Vaya a la sección Complementos.
-
En la tarjeta de Istio gestionado, pulse el icono de menú Acción.
-
Pulse Desinstalar. El complemento de Istio gestionado está inhabilitado en este clúster.
-
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.
- Inhabilite el complemento
istio
.ibmcloud ks cluster addon disable istio --cluster <cluster_name_or_ID> -f
- 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>
- 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).
-
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
-
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
- Listar los recursos de IOP:
-
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.
-
Asegúrese de que su herramienta
istioctl
cli tiene la versión de parche necesaria.istioctl version
-
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.
-
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
-
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>
- Listar los recursos de IOP:
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.