Attivazione del traffico in entrata

Questa pagina mostra come abilitare il traffico in entrata per un cluster Anthos sul cluster VMware (GKE on-prem).

Prima di iniziare

Esegui il deployment di un'applicazione.

Accedi alla workstation mediante SSH

Accedi alla workstation mediante SSH:

ssh -i ~/.ssh/vsphere_workstation ubuntu@[IP_ADDRESS]

dove [IP_ADDRESS] è l'indirizzo IP della workstation di amministrazione.

Esegui tutti i passaggi rimanenti di questo argomento sulla tua workstation di amministrazione.

Attivazione del traffico in entrata

Quando il cluster utente è in esecuzione, devi abilitare il traffico in entrata creando un oggetto Gateway Istio. Questo oggetto Gateway Istio è obbligatorio per il traffico in entrata nella rete e non è destinato a essere utilizzato o supportato per altri casi d'uso, ad esempio i criteri di autorizzazione. La prima parte del manifest Gateway è sempre questa:

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: istio-autogenerated-k8s-ingress
  namespace: gke-system
spec:
  selector:
    istio: ingress-gke-system

Puoi aggiungere ulteriori campi al gateway per specificare quale traffico consente di accedere al tuo cluster. Per ulteriori informazioni sull'utilizzo dei gateway per gestire le richieste in entrata, consulta la sezione Gestione del traffico.

Il seguente manifest del gateway indica che i client possono inviare richieste sulla porta 80 utilizzando il protocollo HTTP/2 e qualsiasi nome 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:
    - "*"

Se vuoi che il servizio in entrata accetti le richieste HTTPS, devi fornire uno o più certificati che il servizio in entrata può presentare ai client.

Per fornire un certificato:

  1. Creare un Secret Kubernetes che contenga il certificato e la chiave.
  2. Creare un oggetto Gateway o modificare un oggetto Gateway esistente che faccia riferimento al tuo Secret. Il nome dell'oggetto Gateway deve essere istio-autogenerated-k8s-ingress.

Supponi, ad esempio, che tu abbia già creato un file certificato, ingress-wildcard.crt e un file chiave ingress-wildcard.key.

Crea un Secret denominato ingressgateway-wildcard-certs:

kubectl create secret tls \
    --namespace gke-system \
    ingressgateway-wildcard-certs \
    --cert ./ingress-wildcard.crt \
    --key ./ingress-wildcard.key

Il seguente manifest del gateway si riferisce al tuo secret. I client possono chiamare la porta 443 utilizzando il protocollo HTTPS e qualsiasi nome host corrispondente *.example.com. Tieni presente che il nome host nel certificato deve corrispondere al nome host nel file manifest, *.example.com in questo esempio:

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

Puoi creare più certificati TLS per host diversi modificando il manifest del gateway.

Salva il manifest in un file denominato my-gateway.yaml e crea il Gateway:

kubectl apply -f my-gateway.yaml

Passaggi successivi

Creazione di un servizio e una risorsa Ingress