Habilita Ingress

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:

  1. Crea un secreto de Kubernetes que contenga tu certificado y tu clave.
  2. 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