Ingress aktivieren

Auf dieser Seite wird gezeigt, wie der eingehende Traffic für einen Anthos-Cluster auf VMware (GKE On-Prem) aktiviert wird.

Hinweis

Anwendung bereitstellen

SSH-Verbindung zur Administrator-Workstation herstellen

Stellen Sie eine SSH-Verbindung zu Ihrer Administrator-Workstation her:

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

Dabei ist [IP_ADDRESS] die IP-Adresse der Administrator-Workstation.

Führen Sie alle verbleibenden Schritte in diesem Thema auf Ihrer Administrator-Workstation aus.

Ingress aktivieren

Nachdem Ihr Nutzercluster ausgeführt wurde, müssen Sie Ingress durch Erstellen eines Istio-Gateway-Objekts aktivieren. Dieses Istio-Gateway-Objekt ist für eingehenden Netzwerk-Traffic erforderlich und darf nicht für andere Anwendungsfälle wie Autorisierungsrichtlinien verwendet oder unterstützt werden. Der erste Teil des Gateway-Manifests lautet immer:

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

Sie können zusätzliche Felder zu Ihrem Gateway hinzufügen, um anzugeben, welcher Traffic in den Cluster eintreten dürfen. Weitere Informationen zur Verwaltung eingehender Anfragen mit Gateways finden Sie unter Trafficverwaltung.

Das folgende Gateway-Manifest gibt an, dass Clients Anfragen an Port 80 senden können. Dazu verwenden sie das HTTP/2-Protokoll und einen beliebigen Hostnamen:

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:
    - "*"

Wenn Sie HTTPS-Anfragen annehmen möchten, müssen Sie ein oder mehrere Zertifikate bereitstellen, die Ihr Ingress-Dienst für Clients angeben kann.

So stellen Sie ein Zertifikat bereit:

  1. Erstellen Sie ein Kubernetes-Secret, das Ihr Zertifikat und Ihren Schlüssel enthält.
  2. Erstellen Sie ein Gateway-Objekt oder ändern Sie ein vorhandenes Gateway-Objekt, das auf Ihr Secret verweist. Der Name des Gateway-Objekts muss istio-autogenerated-k8s-ingress lauten.

Angenommen, Sie haben bereits eine Zertifikatsdatei ingress-wildcard.crt und die Schlüsseldatei ingress-wildcard.key erstellt.

Erstellen Sie ein Secret mit dem Namen ingressgateway-wildcard-certs:

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

Das folgende Gateway-Manifest bezieht sich auf Ihr Secret. Clients können Port 443 über das HTTPS-Protokoll und einen beliebigen Hostnamen aufrufen, der mit *.example.com übereinstimmt. Beachten Sie, dass der Hostname im Zertifikat mit dem Hostnamen im Manifest übereinstimmen muss (in diesem Beispiel *.example.com):

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

Sie können mehrere TLS-Zertifikate für verschiedene Hosts durch Ändern Ihres Gatewaymanifests erstellen.

Speichern Sie Ihr Manifest in einer Datei namens my-gateway.yaml und erstellen Sie das Gateway:

kubectl apply -f my-gateway.yaml

Weitere Informationen

Dienst und Ingress erstellen