Voraussetzungen
– Ein Ubuntu 20.04-Server mit einem Nicht-Root-Benutzer mit „sudo“-Berechtigungen.
- Ein auf dem Server installierter Kubernetes-Cluster, wie „kubeadm“, „k3s“, „minikube“, „Rancher“ usw.
- Zugriff auf die Befehlszeile/das Terminalfenster.
Schritt 1:Aktualisieren Sie das System
Aktualisieren Sie Ihre Paketlisten, bevor Sie mit der Installation fortfahren:
„Sch
sudo apt update &&sudo apt upgrade -y
„
Schritt 2:Kong Kong Gateway Repository hinzufügen
Importieren Sie den GPG-Schlüssel für das Kubernetes-Repository, um den Herausgeber des Pakets zu identifizieren.
„Sch
Curl https://download.konghq.com/keyring/kong.gpg | sudo apt-key add -
„
Erstellen Sie die Kong-Repository-Liste, damit apt Kong von der offiziellen Quelle beziehen kann.
„Sch
echo „deb [arch=amd64] https://download.konghq.com/deb Stable Main“ | sudo tee /etc/apt/sources.list.d/kong.list
„
Schritt 3:Kong Gateway installieren
Installieren Sie nun Kong Gateway mit dem Standardpaketmanager apt.
„Sch
Sudo apt install kong
„
Dieser Befehl sollte Kong Gateway und alle seine Abhängigkeiten installieren.
Schritt 4:Kong-Dienst aktivieren und prüfen
Führen Sie nach Abschluss der Installation den folgenden Befehl aus, um den Kong-Dienst zu aktivieren:
„Sch
sudo systemctl aktiviere kong
„
Und dann starten Sie den Kong-Dienst:
„Sch
sudo systemctl start kong
„
Um zu überprüfen, ob der Kong-Dienst ausgeführt wird, verwenden Sie den folgenden Befehl:
„Sch
sudo systemctl status kong
„
Schritt 5:Ingress Controller installieren
Als Nächstes installieren wir den Kong Ingress Controller, der als Brücke zwischen Kong Gateway und Kubernetes fungiert.
Führen Sie den folgenden Befehl aus, um den Kong Ingress Controller mit Helm, dem Kubernetes-Paketmanager, zu installieren:
„Sch
Helm Repo Add Kong https://charts.konghq.com
Helm-Repo-Update
helm install kong/kong-ingress-controller --namespace=kong --create-namespace
„
Dadurch wird Kong Ingress Controller in einem neu erstellten „Kong“-Namespace installiert.
Schritt 6:Konfigurieren des externen Datenverkehrszugriffs auf Kong Gateway
Standardmäßig lauscht Kong Gateway auf Anfragen an der lokalen Schnittstelle und Port 8000. Um den Fernzugriff von außerhalb Ihres Servers, beispielsweise von den Clients in Ihrem Cluster, zu ermöglichen, müssen wir die Netzwerkrichtlinien von Kubernetes konfigurieren.
Erstellen Sie die erforderliche Netzwerkrichtlinie mit „kubectl“:
„Sch
kubectl create -f - <
apiVersion:networking.k8s.io/v1
Art:NetworkPolicy
Metadaten:
Name:zulassen-Verkehr
Spezifikation:
podSelector:{}
Eingang:
- aus:
- NamespaceSelector:
matchLabels:
Name:Kong
Häfen:
- Port:8000
Protokoll:TCP
EOF
„
Diese Netzwerkrichtlinie ermöglicht allen Pods im Namensraum „kong“, Datenverkehr an Kong Gateway zu senden.
Schritt 7:Testen des Kong Gateway
Um zu testen, ob Kong Gateway wie erwartet funktioniert, senden Sie eine Anfrage an das Kong Gateway. Führen Sie den folgenden Befehl aus, um eine HTTP-Anfrage mit „curl“ zu senden.
„Sch
curl -IL http://localhost:8000
„
Sie sollten eine HTTP 404-Antwort erhalten, die darauf hinweist, dass Kong Gateway die Anfrage empfängt, aber keine passenden Routen oder Dienste verfügbar sind.
Schritt 8:Integration mit Kubernetes-Diensten
Um die Einrichtung abzuschließen, können Sie eine einfache Anwendung in Ihrem Kubernetes-Cluster bereitstellen und Kong Gateway als Eingangscontroller verwenden, um Anforderungen an die Anwendung weiterzuleiten.
Hier ist ein Beispiel für ein „Deployment“-Manifest für eine einfache Anwendung namens „nginx“:
„yaml
apiVersion:apps/v1
Art:Bereitstellung
Metadaten:
Name:Nginx
Etiketten:
App:Nginx
Spezifikation:
Wähler:
matchLabels:
App:Nginx
Nachbildungen:1
Vorlage:
Metadaten:
Etiketten:
App:Nginx
Spezifikation:
Behälter:
- Name:Nginx
Bild:nginx:1.21
Häfen:
- ContainerPort:80
Name:http
„
Speichern Sie es in einer Datei mit dem Namen „nginx.yaml“. Stellen Sie es dann in Ihrem Kubernetes-Cluster bereit:
„Sch
kubectl apply -f nginx.yaml
„
Dadurch wird ein Deployment für einen einfachen Nginx-Server erstellt.
#### Erstellen des Dienstes
Erstellen Sie als Nächstes einen Kubernetes-Dienst, der Port 80 aller Pods mit der Bezeichnung „app=nginx“ verfügbar macht:
„yaml
APIVersion:v1
Art:Service
Metadaten:
Name:Nginx
Etiketten:
App:Nginx
Spezifikation:
Häfen:
- Hafen:80
Name:http
Wähler:
App:Nginx
„
Speichern Sie es in einer Datei mit dem Namen „nginx-service.yaml“. Stellen Sie es dann in Ihrem Kubernetes-Cluster bereit:
„Sch
kubectl apply -f nginx-service.yaml
„
#### Erstellen der KongRoute
Konfigurieren Sie abschließend Kong Gateway so, dass der Datenverkehr an unseren „nginx“-Dienst weitergeleitet wird. Unten finden Sie ein Beispielmanifest für eine KongRoute:
„yaml
API-Version:konghq.com/v1
Art:KongRoute
Metadaten:
Name:Beispiel
Spezifikation:
Protokolle:
- https
Host:example.com
Pfade:
- /
Service:
Name:Nginx-Kong
Hafen:80
Protokoll:http
„
Speichern Sie dieses Manifest in einer Datei mit dem Namen „example-route.yaml“ und wenden Sie es auf Ihren Kubernetes-Cluster an:
„Sch
kubectl apply -f example-route.yaml
„
Dadurch wird eine Konfiguration erstellt, die Kong Gateway anweist, HTTPS-Anfragen an die Domäne „example.com“ zu akzeptieren und sie über HTTP an unseren „nginx“-Dienst weiterzuleiten, der auf Port 80 ausgeführt wird.
Routing testen
Jetzt können Sie das Kong Gateway-Routing testen. Führen Sie von jedem Computer mit Zugriff auf den Kubernetes-Cluster Folgendes aus:
„Sch
curl -k https://example.com
„
Wenn alles richtig eingerichtet ist, sollten Sie die Standard-Nginx-Willkommensseite sehen.
Glückwunsch! Sie haben Kong Gateway erfolgreich unter Ubuntu Linux installiert, den Ingress Controller eingerichtet, Netzwerkrichtlinien konfiguriert und das Routing zu einer Anwendung in Ihrem Kubernetes-Cluster getestet.