Trabajo con Istio como complemento de cluster
Descubra cómo instalar, configurar y utilizar Istio como complemento de cluster para simplificar la gestión del tráfico, la seguridad, las conexiones y la observabilidad en clusters que ha creado con Container Engine for Kubernetes (OKE).
El uso de Istio como un complemento de cluster (el 'complemento Istio') en lugar de como un programa independiente simplifica la configuración y el mantenimiento continuo. Puede hacerlo de manera más sencilla:
- Activar o desactivar Istio.
- Seleccione o descarte actualizaciones de versión automáticas por parte de Oracle.
- Seleccione las versiones del complemento de Istio.
- Gestione personalizaciones específicas del complemento utilizando argumentos de configuración de par clave/valor aprobados.
Al desplegar Istio como complemento de cluster mediante Container Engine for Kubernetes, puede crear opcionalmente un gateway de entrada de Istio para enrutar las solicitudes HTTP y HTTPS entrantes. También puede utilizar otras entradas soportadas para enrutar el tráfico al servicio adecuado que se ejecuta en el cluster. Tenga en cuenta que la accesibilidad del gateway de entrada de Istio depende del tipo de subred del equilibrador de carga (pública o privada) especificada para el cluster.
En el caso del complemento Istio, se utilizan argumentos de configuración de par clave/valor aprobados para realizar personalizaciones específicas del complemento para parámetros de configuración de malla (consulte Argumentos de configuración del complemento Istio). Para otras tareas de configuración, como la gestión de recursos de malla, se utiliza istioctl (la herramienta de línea de comandos Istio) u otras herramientas soportadas por Istio. Si configura el complemento Istio mediante los argumentos aprobados y desea conservar las personalizaciones cuando Oracle actualice automáticamente la versión del complemento, defina el argumento de configuración customizeConfigMap
en true
. Si no define el argumento de configuración customizeConfigMap
en true
, las personalizaciones se descartan cuando Oracle actualiza el complemento. Las personalizaciones que realice con istioctl (u otra herramienta compatible con Istio) siempre se descartan cuando Oracle actualiza el complemento.
Si utiliza gráficos de Helm y Helm para configurar y desplegar aplicaciones de Kubernetes, tenga en cuenta que Helm solo puede actualizar o suprimir recursos que haya creado. Por lo tanto, para permitir que Helm gestione el complemento Istio:
- Utilice gráficos de Helm para generar los mapas de configuración de istio e istio-sidecar-injector.
- Defina el argumento de configuración
customizeConfigMap
entrue
al desplegar el complemento Istio.
Si decide que Oracle actualice automáticamente el complemento Istio, Oracle realizará una actualización in situ cuando haya nuevas versiones de Istio disponibles. Durante la actualización, Oracle actualiza automáticamente el plano de control Istio (istiod) y el gateway de entrada a la versión más reciente. Tenga en cuenta que Oracle no actualiza automáticamente ningún sidecars de plano de datos de Istio; por lo tanto, estos sidecars permanecen en la versión antigua. Es su responsabilidad actualizar manualmente el plano de datos de Istio reiniciando cualquier pod con sidecars de Istio mediante el comando kubectl rollout restart deployment
. Aunque el plano de control de Istio es compatible con versiones anteriores de sidecar, si su prioridad es garantizar un tiempo de inactividad cero, le recomendamos que actualice manualmente Istio en lugar de que Oracle actualice automáticamente el complemento de Istio por usted. Consulte Actualizaciones en el lugar en la documentación de Istio.
En estas secciones se describe cómo trabajar con el complemento Istio para gestionar la comunicación y las redes entre servicios:
- Despliegue del complemento Istio
- Actualización del complemento Istio
- Desactivación (y eliminación) del complemento Istio
Tenga en cuenta que los productos de malla de servicios (como Oracle Cloud Infrastructure Service Mesh, Istio y Linkerd) están soportados al utilizar el plugin CNI de red de pod nativo de VCN de OCI para redes de pod. Tenga en cuenta que, a excepción del complemento Istio, el soporte está limitado actualmente a Oracle Linux 7 (se ha planificado el soporte de Oracle Linux 8). El complemento Istio está soportado con Oracle Linux 7 y Oracle Linux 8. Los nodos de trabajador deben ejecutar Kubernetes 1.26 (o una versión posterior).
Tenga en cuenta también que no puede utilizar el complemento Istio con clusters que ya tienen Istio instalado como programa independiente ni en clusters que tienen Oracle Cloud Infrastructure Service Mesh instalado.
Puede utilizar Istio con pools de nodos gestionados, pero no con pools de nodos virtuales.
Despliegue del complemento Istio
En las instrucciones de los siguientes pasos se describe cómo desplegar la malla de servicios Istio como un complemento de cluster (el "complemento Istio") para simplificar la gestión del tráfico, la seguridad, las conexiones y la observabilidad en clusters que ha creado con Container Engine for Kubernetes:
- Paso 1: Crear el archivo de configuración del complemento Istio
- Paso 2: Despliegue el complemento Istio en el cluster y confirme que el despliegue se ha realizado correctamente
- Paso 3: Activar inyección sidecar de Envoy
- Paso 4: Despliegue de una aplicación y observe los contenedores sidecar de Envoy
Para ver un ejemplo práctico, consulte Ejemplo: despliegue de Istio como complemento de cluster.
Paso 1: Crear el archivo de configuración del complemento Istio
En estas instrucciones se describe cómo crear un archivo de configuración del complemento Istio para permitirle desplegar el complemento Istio mediante la CLI. El archivo de configuración contiene argumentos de configuración de par clave/valor aprobados. Debe crear un archivo de configuración al desplegar el complemento mediante la CLI (o mediante la API). También puede utilizar la consola para desplegar el complemento Istio, en cuyo caso debe especificar argumentos de configuración en la interfaz de usuario. Para obtener más información sobre el despliegue del complemento Istio mediante la consola, consulte Instalación de un complemento de cluster.
-
En un editor adecuado, cree un archivo JSON con el nombre que desee (estas instrucciones suponen que el archivo se denomina
enableistio.json
) que contenga lo siguiente:{ "addonName": "Istio", "configurations": [ ] }
Este contenido es suficiente para activar el complemento Istio.
- (Opcional) En el archivo
enableistio.json
, especifique si desea instalar el gateway de entrada de Istio, de la siguiente manera:- Para instalar el gateway de entrada de Istio, actualice el archivo
enableistio.json
de la siguiente manera:{ "addonName": "Istio", "configurations": [ { "key": "enableIngressGateway", "value": "true" } ] }
- Si no desea instalar el gateway de entrada de Istio, actualice el archivo
enableistio.json
de la siguiente manera:{ "addonName": "Istio", "configurations": [ { "key": "enableIngressGateway", "value": "false" } ] }
Tenga en cuenta que si no incluye
enableIngressGateway
en el archivo de configuración, el comportamiento por defecto no es instalar el gateway de entrada de Istio (equivalente a definirenableIngressGateway
enfalse
) - Para instalar el gateway de entrada de Istio, actualice el archivo
-
(Opcional) En el archivo
enableistio.json
que ha creado, especifique otros argumentos de configuración para personalizar el complemento Istio. Para obtener información sobre los argumentos de configuración que puede definir, consulte Argumentos de configuración del complemento Istio. - (Opcional) Si desea conservar las personalizaciones que realice en el complemento Istio si Oracle actualiza automáticamente la versión del complemento, defina el argumento
customizeConfigMap
entrue
. Por ejemplo:- Para instalar el gateway de entrada de Istio y conservar las personalizaciones, actualice el archivo
enableistio.json
de la siguiente manera:{ "addonName": "Istio", "configurations": [ { "key": "enableIngressGateway", "value": "true" }, { "key": "customizeConfigMap", "value": "true" } ] }
- Si no desea instalar el gateway de entrada de Istio, pero desea conservar las personalizaciones, actualice el archivo
enableistio.json
de la siguiente manera:{ "addonName": "Istio", "configurations": [ { "key": "enableIngressGateway", "value": "false" }, { "key": "customizeConfigMap", "value": "true" } ] }
Tenga en cuenta que si no incluye
customizeConfigMap
en el archivo de configuración, el comportamiento por defecto es desechar las personalizaciones si Oracle actualiza automáticamente la versión del complemento (equivalente a definircustomizeConfigMap
enfalse
)
- Para instalar el gateway de entrada de Istio y conservar las personalizaciones, actualice el archivo
- Guardar y cerrar el archivo
enableistio.json
.
Paso 2: Despliegue el complemento Istio en el cluster y confirme que el despliegue se ha realizado correctamente
En estas instrucciones, se describe cómo desplegar el complemento Istio mediante la CLI y un archivo de configuración. También puede desplegar el complemento mediante la consola y la API. Para obtener más información, consulte instalación de un complemento de cluster.
-
Si todavía no lo ha hecho, siga los pasos para configurar el archivo de configuración kubeconfig del cluster y (si es necesario) defina la variable de entorno KUBECONFIG para que apunte al archivo. Tenga en cuenta que debe configurar su propio archivo kubeconfig. No puede acceder a un cluster utilizando un archivo kubeconfig que haya configurado un usuario diferente. Consulte Configuración del acceso a los clusters.
- Confirme que el complemento Istio no se ha instalado aún en el clúster introduciendo:
oci ce cluster list-addons --cluster-id <cluster-ocid>
donde
<cluster-ocid>
es el OCID del cluster en el que desea desplegar el complemento Istio. -
Despliegue el complemento Istio en el cluster introduciendo:
oci ce cluster install-addon --addon-name Istio --cluster-id <cluster-ocid> --from-json file://./<path-to-config-file>
donde:
--cluster-id <cluster-ocid>
es el OCID del cluster en el que desea desplegar el complemento Istio.--from-json file://<path-to-config-file>
especifica la ubicación del archivo de configuración del complemento de Istio que ha creado anteriormente. Por ejemplo,--from-json file://./enableistio.json
Por ejemplo:
oci ce cluster install-addon --addon-name Istio --from-json file://./enableistio.json --cluster-id ocid1.cluster.oc1.iad.aaaaaaaam______dfr
Se crea una solicitud de trabajo para desplegar el complemento Istio.
-
Confirme el despliegue correcto del complemento Istio (y del gateway de entrada Istio, si lo ha especificado en el archivo de configuración del complemento Istio), de la siguiente manera:
- Confirme que el complemento Istio se ha instalado en el cluster introduciendo:
oci ce cluster list-addons --cluster-id <cluster-ocid>
Si el despliegue se realiza correctamente, la salida muestra el complemento Istio con un estado de ciclo de vida ACTIVE. Por ejemplo:
{ "data": [ { "addon-error": null, "current-installed-version": "v1.19.0", "lifecycle-state": "ACTIVE", "name": "Istio", "time-created": "2023-11-06T11:21:11+00:00", "version": null } ] }
- Confirme que el pod istiod (plano de control Istio) y también el pod istio-ingressgateway si lo ha especificado en el archivo de configuración se están ejecutando en el espacio de nombres istio-system introduciendo:
kubectl get pods -n istio-system
Si el despliegue se realiza correctamente, la salida muestra los pods con el estado Running. Por ejemplo:
NAME READY STATUS RESTARTS AGE istio-ingressgateway-df7d86548-n2vxr 1/1 Running 0 102s istiod-65d95bd5f9-vb2qk 1/1 Running 0 101s
- Si ha especificado el gateway de entrada de Istio en el archivo de configuración, confirme que el servicio istio-ingressgateway se ha desplegado correctamente introduciendo:
kubectl get svc istio-ingressgateway -n istio-system
Si el despliegue se realiza correctamente, la salida muestra el servicio istio-ingressgateway como un servicio de tipo LoadBalancer y (si la subred del equilibrador de carga del cluster es pública) con una dirección IP de acceso público. Por ejemplo:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 10.96.31.174 <EXTERNAL-IP> 15021:30089/TCP,80:31662/TCP,443:32217/TCP 2m50s
- Confirme que el complemento Istio se ha instalado en el cluster introduciendo:
Paso 3: Activar inyección sidecar de Envoy
Para permitir a Istio inyectar el sidecar de Envoy en cada servicio para proporcionar comunicación, configuración y seguridad:
- Cree el espacio de nombres en el que desplegar aplicaciones (si el espacio de nombres aún no existe) introduciendo:
kubectl create namespace <namespace-name>
- Convierta el espacio de nombres en el que desplegar aplicaciones en el espacio de nombres por defecto introduciendo:
kubectl config set-context --current --namespace=<namespace-name>
- Confirme que el espacio de nombres en el que desplegar aplicaciones es el espacio de nombres por defecto introduciendo:
kubectl config view --minify | grep namespace
- Agregue la etiqueta
istio-injection=enabled
al espacio de nombres para instalar automáticamente el sidecar de Envoy en cualquier pod de aplicación nuevo desplegado en el espacio de nombres introduciendo:kubectl label namespace <namespace-name> istio-injection=enabled
- Confirme que el espacio de nombres está etiquetado correctamente introduciendo:
kubectl get namespace -L istio-injection
Paso 4: Despliegue de una aplicación y observe los contenedores sidecar de Envoy
Para confirmar que Istio se está utilizando para proporcionar comunicación, configuración y seguridad para una aplicación:
- Despliegue la aplicación. Por ejemplo, introduzca:
kubectl apply -f <manifest-name>
- Confirme que los servicios de la aplicación se han creado correctamente introduciendo:
kubectl get services
- Confirme que los pods de la aplicación tienen el estado Running introduciendo:
kubectl get pods
La salida muestra que cada pod de aplicación tiene dos contenedores. Para cada pod, un contenedor es el contenedor de aplicación y el otro contenedor es el sidecar de Envoy inyectado por Istio.
- Confirme que uno de los pods de la aplicación tiene dos contenedores (uno de ellos es el contenedor de la aplicación y el otro es el sidecar de Envoy inyectado por Istio) introduciendo:
kubectl get pods <application-pod-name> -o jsonpath='{.spec.containers[*].name}'
Tenga en cuenta que no se puede acceder a las aplicaciones desde fuera del cluster por defecto después de activar el gateway de entrada. Para obtener un ejemplo de cómo hacer que una aplicación sea accesible, consulte Ejemplo: despliegue de Istio como complemento de cluster.
Ejemplo: despliegue de Istio como complemento de cluster
En este ejemplo, se instala el complemento Istio y el gateway de entrada Istio en un cluster creado con Container Engine for Kubernetes. Una vez instalado el complemento de Istio y el gateway de entrada, despliega la aplicación Bookinfo de ejemplo de Istio y hace que se pueda acceder a la aplicación desde fuera del cluster:
- Para mayor comodidad, defina una variable de entorno denominada CLUSTER_ID en el valor del OCID del cluster introduciendo:
export CLUSTER_ID=<cluster-ocid>
- Cree un archivo JSON denominado
enableistio-ig.json
que contenga lo siguiente:{ "addonName": "Istio", "configurations": [ { "key": "enableIngressGateway", "value": "true" } ] }
Este archivo de configuración instala el complemento Istio y la puerta de enlace de entrada Istio.
- Instale el complemento Istio y el gateway de entrada Istio en el cluster introduciendo:
oci ce cluster install-addon --addon-name Istio --cluster-id $CLUSTER_ID --from-json file://./enableistio-ig.json
Se crea una solicitud de trabajo para instalar el complemento Istio.
- Verifique que la instalación del complemento Istion y el gateway de entrada de Istio se ha realizado correctamente:
- Confirme que el complemento Istio se ha instalado correctamente escribiendo:
oci ce cluster list-addons --cluster-id $CLUSTER_ID
Si el despliegue se realiza correctamente, la salida muestra el complemento Istio con un estado de ciclo de vida ACTIVE. Por ejemplo, las siguientes salidas muestran el complemento Istio, junto con una serie de complementos de cluster esenciales:
{ "data": [ { "addon-error": null, "current-installed-version": "v1.10.1-multiarch-7", "lifecycle-state": "ACTIVE", "name": "CoreDNS", "time-created": "2023-11-06T10:35:26+00:00", "version": null }, { "addon-error": null, "current-installed-version": "v1.19.0", "lifecycle-state": "ACTIVE", "name": "Istio", "time-created": "2023-11-06T11:21:11+00:00", "version": null }, { "addon-error": null, "current-installed-version": "v1.27.2-oke.0.2.20-multiarch-98", "lifecycle-state": "ACTIVE", "name": "KubeProxy", "time-created": "2023-11-06T10:35:26+00:00", "version": null }, { "addon-error": null, "current-installed-version": "v2.0.1", "lifecycle-state": "ACTIVE", "name": "OciVcnIpNative", "time-created": "2023-11-06T10:35:26+00:00", "version": null } ] }
- Confirme que el pod del plano de control de Istio (istiod) y el pod de istio-ingressgateway se están ejecutando en el espacio de nombres de istio-system introduciendo:
kubectl get pods -n istio-system
Si el despliegue se realiza correctamente, la salida muestra ambos pods con el estado Running. Por ejemplo:
NAME READY STATUS RESTARTS AGE istio-ingressgateway-df7d86548-n2vxr 1/1 Running 0 102s istiod-65d95bd5f9-vb2qk 1/1 Running 0 101s
- Confirme que el servicio istio-ingressgateway se ha desplegado correctamente introduciendo:
kubectl get svc istio-ingressgateway -n istio-system
Si el despliegue se realiza correctamente, la salida muestra el servicio istio-ingressgateway como un servicio de tipo LoadBalancer y (si la subred del equilibrador de carga del cluster es pública) con una dirección IP de acceso público. Por ejemplo:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 10.96.31.174 <EXTERNAL-IP> 15021:30089/TCP,80:31662/TCP,443:32217/TCP 2m50s
- Confirme que el complemento Istio se ha instalado correctamente escribiendo:
- Cree un nuevo espacio de nombres en el que desplegar la aplicación de ejemplo Bookinfo:
- Cree el espacio de nombres
bookinfo
introduciendo:kubectl create namespace bookinfo
- Haga del espacio de nombres
bookinfo
el espacio de nombres por defecto introduciendo:kubectl config set-context --current --namespace=bookinfo
- Confirme que bookinfo es el espacio de nombres por defecto introduciendo:
kubectl config view --minify | grep namespace
- Cree el espacio de nombres
- Agregue la etiqueta
istio-injection=enabled
al espacio de nombres bookinfo para instalar automáticamente el sidecar de Envoy en cualquier nuevo pod de aplicación desplegado en el espacio de nombres:- Agregue la etiqueta al espacio de nombres bookinfo introduciendo:
kubectl label namespace bookinfo istio-injection=enabled
- Confirme que el espacio de nombres bookinfo está etiquetado correctamente escribiendo:
kubectl get namespace -L istio-injection
- Agregue la etiqueta al espacio de nombres bookinfo introduciendo:
- Despliegue la aplicación de ejemplo Bookinfo introduciendo:
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.19/samples/bookinfo/platform/kube/bookinfo.yaml
Si el despliegue se realiza correctamente, la salida muestra varios despliegues y servicios creados en el cluster, de la siguiente manera:
service/details created serviceaccount/bookinfo-details created deployment.apps/details-v1 created service/ratings created serviceaccount/bookinfo-ratings created deployment.apps/ratings-v1 created service/reviews created serviceaccount/bookinfo-reviews created deployment.apps/reviews-v1 created deployment.apps/reviews-v2 created deployment.apps/reviews-v3 created service/productpage created serviceaccount/bookinfo-productpage created deployment.apps/productpage-v1 created
- Verifique el despliegue correcto de la aplicación de ejemplo Bookinfo:
- Confirme que los servicios se han creado correctamente introduciendo:
kubectl get services
Si el despliegue se realiza correctamente, la salida muestra los servicios creados en el cluster, de forma similar a la siguiente:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE details ClusterIP 10.96.72.219 <none> 9080/TCP 54s productpage ClusterIP 10.96.65.83 <none> 9080/TCP 54s ratings ClusterIP 10.96.101.51 <none> 9080/TCP 54s reviews ClusterIP 10.96.14.9 <none> 9080/TCP 54s
- Confirme que todos los pods tienen el estado Running introduciendo:
kubectl get pods
Si el despliegue se realiza correctamente, la salida muestra los pods que se están ejecutando, de forma similar a la siguiente:
NAME READY STATUS RESTARTS AGE details-v1-5f4d584748-hcm9t 2/2 Running 0 81s productpage-v1-564d4686f-48lpw 2/2 Running 0 80s ratings-v1-686ccfb5d8-bpl8t 2/2 Running 0 81s reviews-v1-86896b7648-6c8d4 2/2 Running 0 81s reviews-v2-b7dcd98fb-fsv7c 2/2 Running 0 81s reviews-v3-5c5cc7b6d-qgrv2 2/2 Running 0 81s
La salida muestra que cada pod de aplicación tiene dos contenedores. Para cada pod, un contenedor es el contenedor de aplicación y el otro contenedor es el sidecar de Envoy inyectado por Istio.
- Confirme que el pod
ratings
tiene dos contenedores (uno de los cuales es el contenedor de aplicación y el otro es el sidecar de Envoy inyectado por Istio). Por ejemplo, introduzca:kubectl get pods ratings-v1-686ccfb5d8-bpl8t -o jsonpath='{.spec.containers[*].name}'
La salida muestra dos contenedores, el contenedor de aplicación (ratings) y el contenedor sidecar de Envoy inyectado por Istio (istio-proxy):
ratings istio-proxy
- Confirme que la aplicación se está ejecutando enviando un comando curl desde un pod:
kubectl exec "$(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}')" -c ratings -- curl -sS productpage:9080/productpage | grep -o "<title>.*</title>" <title>Simple Bookstore App</title>
Tenga en cuenta que la aplicación de ejemplo Bookinfo aún no está accesible desde fuera del cluster, incluso después de activar el gateway de entrada. Tenga en cuenta también que la accesibilidad del gateway de entrada de Istio depende del tipo de subred del equilibrador de carga (pública o privada) especificada para el cluster.
- Confirme que los servicios se han creado correctamente introduciendo:
-
Haga que la aplicación de ejemplo Bookinfo sea accesible desde fuera del cluster:
- Asigne la entrada del despliegue de ejemplo al gateway de entrada de Istio introduciendo:
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.19/samples/bookinfo/networking/bookinfo-gateway.yaml
La salida muestra que se han creado el gateway de Kubernetes y los recursos VirtualService:
gateway.networking.istio.io/bookinfo-gateway created virtualservice.networking.istio.io/bookinfo created
- Asigne la entrada del despliegue de ejemplo al gateway de entrada de Istio introduciendo:
- Verifique que se puede acceder a la aplicación de ejemplo Bookinfo y que utiliza el gateway de entrada de Istio:
- Defina las variables de entorno para el host de entrada y el puerto de entrada introduciendo:
export INGRESS_NAME=istio-ingressgateway
export INGRESS_NS=istio-system
export INGRESS_HOST=$(kubectl -n "$INGRESS_NS" get service "$INGRESS_NAME" -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
export INGRESS_PORT=$(kubectl -n "$INGRESS_NS" get service "$INGRESS_NAME" -o jsonpath='{.spec.ports[?(@.name=="http2")].port}')
- Confirme que la aplicación de ejemplo Bookinfo es accesible y que utiliza el gateway de entrada de Istio introduciendo:
curl -s "http://${INGRESS_HOST}:${INGRESS_PORT}/productpage" | grep -o "<title>.*</title>"
Si el despliegue se realiza correctamente, la salida muestra los servicios creados en el cluster, de forma similar a la siguiente:
<title>Simple Bookstore App</title>
- Para ver la página web de Bookinfo en un explorador, abra la siguiente URL:
http://${INGRESS_HOST}:${INGRESS_PORT}/productpage
- En el navegador, actualice la página web de Bookinfo varias veces para ver las diferentes versiones de las revisiones que se muestran en la página.
- Defina las variables de entorno para el host de entrada y el puerto de entrada introduciendo:
- (Opcional) Una vez completado el ejemplo, ahora puede suprimir los recursos que ha creado:
- Para suprimir la aplicación de ejemplo Bookinfo, introduzca:
kubectl delete -f https://raw.githubusercontent.com/istio/istio/release-1.19/samples/bookinfo/platform/kube/bookinfo.yaml
-
Para desactivar (y eliminar opcionalmente) el complemento Istio mediante el comando oci ce cluster disable-addon, introduzca:
oci ce cluster disable-addon --addon-name Istio --cluster-id $CLUSTER_ID --is-remove-existing-add-on <true|false>
donde
--is-remove-existing-add-on <true|false>
especifica si se debe eliminar por completo el complemento Istio (cuando está definido entrue
) o no eliminar el complemento, pero simplemente desactivarlo y no utilizarlo (cuando está definido enfalse
). Si desactivas el complemento, Oracle ya no actualiza la versión del complemento automáticamente cuando hay nuevas versiones disponibles.Por ejemplo:
oci ce cluster disable-addon --addon-name Istio --cluster-id $CLUSTER_ID --is-remove-existing-add-on true
Se crea una solicitud de trabajo para desactivar (y, opcionalmente, eliminar) el complemento Istio.
- Elimine Istio CustomResourceDefinitions (CRD), que no se suprimen por defecto, introduciendo:
kubectl delete crd $(kubectl get crd -A | grep "istio.io" | awk '{print $1}')
- Elimine los recursos de malla de Istio (como el gateway de Kubernetes y los recursos VirtualService), que no gestiona el complemento de Istio, introduciendo:
kubectl delete -f https://raw.githubusercontent.com/istio/istio/release-1.19/samples/bookinfo/networking/bookinfo-gateway.yaml
- Para suprimir la aplicación de ejemplo Bookinfo, introduzca:
Actualización del complemento Istio
En estas instrucciones, se describe cómo actualizar el complemento Istio mediante la CLI y un archivo de configuración. También puede actualizar el complemento mediante la consola y la API. Para obtener más información, consulte Actualización de un complemento de cluster.
-
Abra el archivo de configuración del complemento Istio en un editor adecuado.
-
Agregue, elimine o cambie argumentos de configuración en el archivo de configuración según sea necesario. Para obtener información sobre los argumentos que puede definir, consulte Argumentos de configuración del complemento Istio.
- Si ha especificado que desea que Oracle actualice automáticamente la versión del complemento Istio y desea conservar los cambios de configuración, defina el argumento de configuración
customizeConfigMap
entrue
(si aún no está definido). - Actualice el complemento Istio mediante el comando oci ce cluster update-addon introduciendo:
oci ce cluster update-addon --addon-name Istio --from-json file://<path-to-config-file> --cluster-id <cluster-ocid>
donde:
--cluster-id <cluster-ocid>
es el OCID del cluster en el que desea actualizar el complemento de Istio.--from-json file://<path-to-config-file>
especifica la ubicación del archivo de configuración del complemento de Istio que se va a utilizar al actualizar el complemento. Por ejemplo,--from-json file://./istio-add-on.json
Por ejemplo:
oci ce cluster update-addon --addon-name Istio --from-json file://./istio-add-on.json --cluster-id ocid1.cluster.oc1.iad.aaaaaaaam______dfr
Se crea una solicitud de trabajo para actualizar el complemento de Istio.
- (Opcional) Para ver el estado de los pods istiod e istio-ingressgateway para observar el progreso, introduzca:
kubectl get pods -n istio-system
Desactivación (y eliminación) del complemento Istio
En estas instrucciones, se describe cómo desactivar y eliminar el complemento Istio mediante la CLI y un archivo de configuración. También puede actualizar el complemento mediante la consola y la API. Para obtener más información, consulte Desactivación (y eliminación) de un complemento de cluster.
-
Para desactivar (y eliminar opcionalmente) el complemento Istio mediante el comando oci ce cluster disable-addon, introduzca:
oci ce cluster disable-addon --addon-name Istio --cluster-id <cluster-ocid> --is-remove-existing-add-on <true|false>
donde:
--cluster-id <cluster-ocid>
es el OCID del cluster en el que desea desactivar (y, opcionalmente, eliminar) el complemento Istio.--is-remove-existing-add-on <true|false>
especifica si se debe eliminar por completo el complemento Istio (cuando está definido entrue
) o no eliminar el complemento, pero simplemente desactivarlo y no utilizarlo (cuando está definido enfalse
). Si desactiva el complemento Istio, Oracle ya no actualiza la versión del complemento automáticamente cuando hay nuevas versiones disponibles.
Por ejemplo:
oci ce cluster disable-addon --addon-name Istio --cluster-id ocid1.cluster.oc1.iad.aaaaaaaam______dfr --is-remove-existing-add-on true
Se crea una solicitud de trabajo para desactivar (y, opcionalmente, eliminar) el complemento Istio.
- (Opcional) Para ver el estado de los pods istiod e istio-ingressgateway para observar el progreso, introduzca:
kubectl get pods -n istio-system
- (Opcional) Elimine Istio CustomResourceDefinitions (CRD), que no se suprimen por defecto, introduciendo:
kubectl delete crd $(kubectl get crd -A | grep "istio.io" | awk '{print $1}')
- (Opcional) Elimine los recursos de malla de Istio (como el gateway de Kubernetes y los recursos VirtualService), que no gestiona el complemento de Istio, mediante el comando
kubectl delete
.