En esta página, se muestra cómo habilitar el tráfico de entrada para un clúster de GKE On-Prem.
Establece una conexión SSH a la estación de trabajo de administrador
Para establecer una conexión SSH a tu estación de trabajo de administrador, ejecuta lo siguiente:
ssh -i ~/.ssh/vsphere_workstation ubuntu@[IP_ADDRESS]
En el ejemplo anterior, [IP_ADDRESS] es la dirección IP de tu estación de trabajo de administrador.
Realiza todos los pasos restantes de este instructivo en la estación de trabajo de administrador.
Habilitar Ingress
Cuando el clúster de usuario esté en ejecución, debes habilitar el tráfico de entrada mediante la creación de un objeto Gateway de Istio. La primera parte del manifiesto de Gateway siempre es la siguiente:
apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: istio-autogenerated-k8s-ingress namespace: gke-system spec: selector: istio: ingress-gke-system
Puedes agregar campos adicionales al Gateway para especificar qué tráfico puede ingresar al clúster. Si deseas obtener más información sobre cómo usar los objetos Gateway para administrar las solicitudes entrantes, consulta Administración de tráfico.
El siguiente manifiesto de Gateway indica que los clientes pueden enviar solicitudes en el puerto 80 mediante el protocolo HTTP/2 y cualquier nombre de host:
apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: istio-autogenerated-k8s-ingress namespace: gke-system spec: selector: istio: ingress-gke-system servers: - port: number: 80 protocol: HTTP2 name: http hosts: - "*"
Si deseas que tu servicio de entrada acepte solicitudes HTTPS, debes proporcionar uno o más certificados que el servicio de entrada pueda presentar a los clientes.
Para proporcionar un certificado, sigue estos pasos:
- Crea un secreto de Kubernetes que contenga tu certificado y tu clave.
- Crea un objeto Gateway o modifica uno existente que haga referencia a tu secreto. El nombre del objeto Gateway debe ser
istio-autogenerated-k8s-ingress
.
Por ejemplo, supongamos que ya creaste un archivo de certificado, ingress-wildcard.crt
, y un archivo de claves, ingress-wildcard.key
.
Crea un Secreto llamado ingressgateway-wildcard-certs
:
kubectl create secret tls \ --namespace gke-system \ ingressgateway-wildcard-certs \ --cert ./ingress-wildcard.crt \ --key ./ingress-wildcard.key
El siguiente manifiesto de Gateway hace referencia a tu secreto. Los clientes pueden llamar al puerto 443 mediante el protocolo HTTPS y cualquier nombre de host que coincida con *.example.com. Ten en cuenta que el nombre de host en el certificado debe coincidir con el nombre de host en el manifiesto, que es *.example.com en este ejemplo:
apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: istio-autogenerated-k8s-ingress namespace: gke-system spec: selector: istio: ingress-gke-system servers: - port: number: 80 protocol: HTTP2 name: http hosts: - "*" - hosts: - "*.example.com" port: name: https-demo-wildcard number: 443 protocol: HTTPS tls: mode: SIMPLE credentialName: ingressgateway-wildcard-certs
Puedes crear varios certificados TLS para diferentes hosts si modificas el manifiesto de Gateway.
Guarda el manifiesto en un archivo llamado my-gateway.yaml
y crea el objeto Gateway:
kubectl apply -f my-gateway.yaml