En este tema, se muestra cómo instalar Anthos Service Mesh, que viene preinstalada con una puerta de enlace de Ingress. Con Anthos Service Mesh, puedes configurar un recurso de Ingress de Kubernetes para tus Deployments si necesitas un controlador de Ingress. En este tema, se proporciona un ejemplo en el que se muestra cómo configurar un recurso de muestra de Ingress y Deployment.
La instalación de Anthos Service Mesh consta de dos partes principales:
- Instalar una versión específica del plano de control administrado por el cliente de Anthos Service Mesh y de la puerta de enlace de entrada.
- Etiquetar los espacios de nombres con una etiqueta de revisión y volver a implementar las cargas de trabajo para incorporar un proxy de sidecar.
Si solo necesitas usar un objeto Ingress mediante un controlador de Ingress, no tienes que incorporar un proxy de sidecar en los Pods de la carga de trabajo. Pero si deseas los beneficios de seguridad que proporciona Anthos Service Mesh y, si quieres usar las capacidades del enrutamiento de tráfico debes insertar los proxies de sidecar.
Antes de comenzar
Antes de comenzar a usar GKE on AWS, completa las siguientes tareas:
- Completar los requisitos
- Instalar un servicio de administración
- Crear un clúster de usuario
- Para registrar tu clúster con Connect, sigue los pasos en Conéctate a tu clúster con la consola de Cloud.
- Configura tu clúster para usar Workload Identity con Google Cloud.
Si tus clústeres de usuario tienen acceso de salida restringido a Internet, permite el acceso a los siguientes dominios del repositorio de contenedores:
docker.io
quay.io
Desde tu directorio de
anthos-aws
, usaanthos-gke
para cambiar el contexto a tu clúster de usuario.cd anthos-aws env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME
Reemplaza CLUSTER_NAME por el nombre de tu clúster de usuario.
Instala Anthos Service Mesh
Sigue los pasos en Instala Anthos Service Mesh.
Crea un Deployment de ejemplo
En esta sección, instalarás una aplicación de muestra y crearás un extremo de Ingress para ella.
Crea un Deployment de
hello-app
y un ClusterIP para la implementación. Copia el siguiente YAML en un archivo llamadohello-app.yaml
.apiVersion: apps/v1 kind: Deployment metadata: labels: app: hello-app name: hello-app spec: selector: matchLabels: app: hello-app replicas: 3 template: metadata: labels: app: hello-app spec: containers: - name: hello image: "gcr.io/google-samples/hello-app:2.0" --- apiVersion: v1 kind: Service metadata: labels: app: hello-app name: hello-app spec: type: ClusterIP selector: app: hello-app ports: - protocol: TCP port: 8080 targetPort: 8080
Aplica el YAML a tu clúster con
kubectl apply
.env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f hello-app.yaml
Crea un Ingress de Kubernetes para la aplicación de muestra. Copia el siguiente YAML en un archivo llamado
hello-app-ingress.yaml
.apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: annotations: kubernetes.io/ingress.class: istio labels: app: hello-app name: hello-app spec: rules: - host: http: paths: - backend: serviceName: hello-app servicePort: 8080
Crea el Ingress. Para ello, aplica la configuración con
kubectl apply
.env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f hello-app-ingress.yaml
Verifica el estado de la puerta de enlace con
kubectl get svc
.env HTTPS_PROXY=http://localhost:8118 \ kubectl get ingress hello-app
El campo
ADDRESS
debe tener un nombre de dominio de ELB. SiADDRESS
sigue siendopending
, confirma el etiquetado de VPC y subred.Para verificar la URL de la puerta de enlace de Ingress, redacta el host y el puerto. Para obtener la URL de tu puerta de enlace, ejecuta los siguientes comandos:
export INGRESS_URL=$(env HTTPS_PROXY=http://localhost:8118 \ kubectl get ingress hello-app -o jsonpath='{.status.loadBalancer.ingress[0].hostname}') echo "Your hello-app Ingress URL is: http://"$INGRESS_URL
Con el último comando, se imprime el extremo de tu Ingress.
Si creaste un Ingress público, puedes visitar
http://$INGRESS_URL/
para ver la página web predeterminada dehello-app
encurl
.curl $INGRESS_URL/
Realiza una limpieza
Quita los componentes hello-app
con kubectl delete
.
env HTTPS_PROXY=http://localhost:8118 \
kubectl delete -f hello-app.yaml &&\
kubectl delete -f hello-app-ingress.yaml
Si deseas quitar Anthos Service Mesh, consulta Desinstala Anthos Service Mesh.
Próximos pasos
Conoce más sobre: