En este tema se explica cómo instalar Cloud Service Mesh, que viene preinstalado con una puerta de enlace de entrada. Con Cloud Service Mesh, puedes configurar un recurso Ingress de Kubernetes para tus implementaciones si necesitas un controlador Ingress. En este tema se proporciona un ejemplo que muestra cómo configurar un recurso de implementación y de entrada de ejemplo.
La instalación de Cloud Service Mesh consta de dos partes principales:
- Instalar una versión específica del plano de control gestionado por el cliente y de Ingress Gateway de Cloud Service Mesh.
- Etiquetar tus espacios de nombres con una etiqueta de revisión y volver a implementar tus cargas de trabajo para insertar un proxy sidecar.
Si solo necesitas usar un objeto Ingress con un controlador Ingress, no tienes que insertar un proxy sidecar en tus pods de carga de trabajo. Sin embargo, si quieres disfrutar de las ventajas de seguridad que ofrece Cloud Service Mesh y usar las funciones de enrutamiento del tráfico, debes insertar los proxies sidecar.
Antes de empezar
Antes de empezar a usar GKE en AWS, asegúrate de haber completado las siguientes tareas:
- Completa los requisitos previos.
- Instala un servicio de gestión.
- Crea un clúster de usuarios.
- Para registrar tu clúster con Connect, sigue los pasos que se indican en el artículo Conectarse a un clúster con la consola de Cloud.
- Configura tu clúster para usar Workload Identity con Google Cloud.
Si tus clústeres de usuarios tienen restringido el acceso saliente a Internet, permite el acceso a los siguientes dominios de repositorios de contenedores:
docker.io
quay.io
En tu directorio de
anthos-aws
, usaanthos-gke
para cambiar el contexto a tu clúster de usuarios. Sustituye CLUSTER_NAME por el nombre de tu clúster de usuario.cd anthos-aws env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME
Instalar Anthos Service Mesh
Sigue los pasos que se indican en Instalar Cloud Service Mesh.
Crear un Deployment de ejemplo
En esta sección, instalarás una aplicación de ejemplo y crearás un endpoint de Ingress para ella.
Crea un Deployment de
hello-app
y un ClusterIP para el Deployment. Copia el siguiente código 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 archivo 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 ejemplo. Copia el siguiente código 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 aplicando la configuración con
kubectl apply
.env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f hello-app-ingress.yaml
Consulta el estado de tu pasarela 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. Si elADDRESS
sigue siendopending
, confirma el etiquetado de la VPC y la subred.Puedes consultar la URL de la puerta de enlace de entrada combinando el host y el puerto. Para obtener la URL de tu pasarela, 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
El último comando imprime el endpoint de tu Ingress.
Si has creado un Ingress público, puedes ver la
hello-app
página web predeterminada encurl
visitandohttp://$INGRESS_URL/
.curl $INGRESS_URL/
Eliminar los recursos utilizados
Elimina 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 quieres quitar Cloud Service Mesh, consulta el artículo sobre cómo desinstalar Cloud Service Mesh.
Siguientes pasos
Consulta más información sobre lo siguiente: