Ingress aktivieren

Auf dieser Seite wird gezeigt, wie der Ingress für einen Anthos GKE On-Prem-Cluster von Anthos aktiviert wird.

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

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

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

Dabei ist [IP_ADDRESS] die IP-Adresse Ihrer 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. 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, welche Zugriffe in den Cluster eintreten dürfen. Weitere Informationen zur Verwaltung eingehender Anfragen mit Gateways finden Sie unter Traffic Management.

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

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 eine 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 Gateway-Manifests erstellen.

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

kubectl apply -f my-gateway.yaml