Activar la inyección Sidecar de proxy Istio en el entorno nativo de Oracle Cloud
Introducción
Istio es una malla de servicio que proporciona una capa de infraestructura independiente para gestionar la comunicación entre servicios. La comunicación de red se extrae de los propios servicios y es gestionada por proxies. Istio utiliza un diseño sidecar, lo que significa que los proxies de comunicación se ejecutan en sus propios contenedores junto a cada contenedor de servicio. Para aplicar la inyección sidecar automática, el espacio de nombres que debe utilizar una aplicación debe estar etiquetado con istio-injection=enabled.
Objetivos
En este tutorial se muestra cómo activar la inyección sidecar de proxy automática y, por lo tanto, aprovechar las funciones de Istio en Oracle Cloud Native Environment.
En este tutorial, despliegue una aplicación sin la inyección automática de sidecar de proxy activada. A continuación, active la inyección sidecar de proxy automática y vuelva a desplegar la aplicación. A continuación, puede ver que los pods de la malla de servicio están ejecutando un proxy Istio sidecar.
Requisitos
Se ha desplegado Oracle Cloud Native Environment versión 1.4, incluido un cluster de Kubernetes. Consulte los tutoriales en:
Despliegue un entorno nativo de Oracle Cloud de alta disponibilidad
Despliegue de Oracle Cloud Native Environment
También debe implementar una malla de servicio mediante el módulo Istio. Para obtener más información sobre el despliegue del módulo Istio, consulte la documentación del entorno nativo de Oracle Cloud.
Verificar que Istio está instalado y en ejecución
En un nodo de plano de control, utilice el siguiente comando para mostrar despliegues en el espacio de nombres istio-system.
kubectl get deployment -n istio-system
La salida debe ser similar a la siguiente:
NAME READY UP-TO-DATE AVAILABLE AGE
grafana 2/2 2 2 2m44s
istio-egressgateway 2/2 2 2 2m48s
istio-ingressgateway 2/2 2 2 2m48s
istiod 2/2 2 2 3m2s
prometheus-server 2/2 2 2 2m44s
Crear un despliegue NGINX simple
Utilice el siguiente comando para crear un nuevo despliegue denominado hello-world que ejecute la imagen nginx.
kubectl create deployment --image container-registry.oracle.com/olcne/nginx:1.17.7 hello-world
Ver los pods de Kubernetes en el espacio de nombres por defecto
Utilice el siguiente comando para mostrar los pods.
kubectl get pods
La salida debe ser similar a la siguiente:
NAME READY STATUS RESTARTS AGE
hello-world-... 1/1 Running 0 18s
Tenga en cuenta que la columna READY es 1/1, lo que indica que la inyección sidecar de proxy automático de Istio no está activada.
Suprimir el despliegue de NGINX
Utilice el siguiente comando para suprimir el despliegue hello-world.
kubectl delete deployments hello-world
Activar inyección sidecar de proxy automática
Para aplicar la inyección sidecar automática, el espacio de nombres que debe utilizar una aplicación debe estar etiquetado con istio-injection=enabled. El siguiente ejemplo etiqueta el espacio de nombres predeterminado.
kubectl label namespace default istio-injection=enabled
El comando kubectl get namespace confirma que el espacio de nombres predeterminado está etiquetado correctamente.
kubectl get namespace -L istio-injection
La salida debe ser similar a la siguiente:
NAME STATUS AGE ISTIO-INJECTION
default Active 23m enabled
externalip-validation-system Active 22m
istio-system Active 19m
kube-node-lease Active 23m
kube-public Active 23m
kube-system Active 23m
kubernetes-dashboard Active 22m
Puede ver que el espacio de nombres por defecto ahora incluye la etiqueta ISTIO_INJECTION.
Crear un despliegue NGINX simple
Utilice el siguiente comando para crear un nuevo despliegue denominado hello-world que ejecute la imagen nginx.
kubectl create deployment --image container-registry.oracle.com/olcne/nginx:1.17.7 hello-world
Ver los pods de Kubernetes en el espacio de nombres por defecto
Utilice el comando kubectl get pods para mostrar los pods.
kubectl get pods
La salida debe ser similar a la siguiente:
NAME READY STATUS RESTARTS AGE
hello-world-... 2/2 Running 0 20s
Tenga en cuenta que la columna READY es 2/2, lo que indica que la inyección sidecar de proxy automático de Istio está activada y que los pods de la malla están ejecutando un proxy Istio sidecar.
Desactivar la inyección automática de sidecar proxy
Elimine la etiqueta istio-injection=enabled del espacio de nombres predeterminado utilizando kubectl label como se muestra.
kubectl label namespace default istio-injection-
El comando kubectl get namespace confirma que la etiqueta se elimina del espacio de nombres predeterminado.
kubectl get namespace -L istio-injection
La salida debe ser similar a la siguiente:
NAME STATUS AGE ISTIO-INJECTION
default Active 39m
externalip-validation-system Active 38m
istio-system Active 36m
kube-node-lease Active 39m
kube-public Active 39m
kube-system Active 39m
kubernetes-dashboard Active 38m
Por último, suprima el despliegue de NGINX.
kubectl delete deployments hello-world
Para más información
- Documentación de entorno nativo de Oracle Cloud
- Documentación ascendente en https://istio.io/
- Formación en entornos nativos de Oracle Cloud
- Plan de estudios de Oracle Linux
- Suscripción a la formación de Oracle Linux
Más recursos de aprendizaje
Explore otras prácticas en docs.oracle.com/learn o acceda a más contenido de aprendizaje libre en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en Oracle Learning Explorer.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Enable Istio Proxy Sidecar Injection in Oracle Cloud Native Environment
F49705-02
November 2021
Copyright © 2021, Oracle and/or its affiliates.