Zum Inhalt springen Weiter zur Suche
Testversion
Blog

Bereitstellen eines Ingress Controllers in Azure Kubernetes

Was ist der Azure Kubernetes Service?

Azure Kubernetes Service (AKS) hilft Benutzern bei der Bereitstellung eines verwalteten Kubernetes-Clusters in Azure. AKS ist als kostenloser gehosteter Kubernetes-Dienst verfügbar. Nutzer müssen für die Agent-Knoten innerhalb der Cluster bezahlen.

Auf dem Cluster läuft eine Multicontainer-Webanwendung, auf die die Nutzer über das Internet zugreifen können.

Verwaltung des Anwendungsverkehrs in Kubernetes mit A10 Lightning ADC

Das A10 Lightning ADCs Daemon-Set kann in Kubernetes-Clustern eingesetzt werden, um den containerisierten Anwendungsverkehr im Cluster zu verwalten. Die ADC-Verwaltungsfunktionen von Lightning umfassen Lastausgleich und Anwendungssicherheit. Der A10 Harmony Controller bietet eine zentrale Verwaltung für ADCs und Analysen für die Anwendungen.

A10 Networks bietet auch einen Ingress Controller für Kubernetes für seine Container-native Load Balancing- und Application Delivery Controller-Plattform. Dies ermöglicht den Lastausgleich von laufenden Kubernetes-Diensten und eine Plattform zur Extraktion von Leistungskennzahlen.

Der Ingress Controller arbeitet mit Ingress-Ressourcen, um automatisch die Anwendungsbereitstellungskonfiguration und Richtlinien für einen Container bereitzustellen. Er kann auch den Lightning ADC Load Balancer von A10 dynamisch aktualisieren, wenn Anwendungsdienste innerhalb eines Kubernetes-Clusters skaliert werden. Es bietet auch Anwendungsanalysen, indem es Metriken sammelt, die zur Fehlerbehebung, Kapazitätsplanung und Erkennung von Leistungs- oder Sicherheitsproblemen verwendet werden können. Diese analytischen Daten sind über das Portal A10 Harmony oder eine Reihe von APIs verfügbar.

Ingress-Deployment-Architektur
Ingress-Bereitstellungsarchitektur

Voraussetzungen für die Bereitstellung der A10-Lösung in Azure AKS Service

  • Melden Sie sich bei Azure AKS an und erstellen Sie einen Kubernetes Node Cluster
  • Bereitstellung des A10 Lightning ADC-Daemon-Sets und des Ingress Controllers
  • Einsatz von A10 Harmony Controller im Rechenzentrum
  • Melden Sie sich auf Harmony Controller an und erstellen Sie einen manuellen Lightning ADC Cluster

Bereitstellung von A10 Ingress Controller mit Lightning ADC-Daemon-Set auf einem Knoten in Azure AKS Service

1. Öffnen Sie einen Browser und melden Sie sich im Azure-Portal mit den Azure-Benutzerdaten an.

  • Geben Sie unter " Alle Dienste" "AKS" ein und klicken Sie auf AKS-Dienste, um einen AKS-Cluster zu erstellen.
  • Der Azure AKS-Dienst bietet standardmäßig aktiviertes HTTP Application Routing. Es handelt sich um einen zusätzlichen Front-End-Lastausgleichsdienst für den Lastausgleich des Benutzerverkehrs zwischen den Knoten. Er kann beim Einrichten des Clusters deaktiviert werden.
azure http-anwendungsrouting
Azure HTTP-Anwendungs-Routing

Optional können Sie die Azure CLI zur Erstellung des Clusters verwenden. Sobald Sie jedoch einen Cluster erstellt haben, können Sie Kubernetes und Azure CLI auf dem lokalen System installieren.

2. Installieren Sie Kubernetes und Azure CLI im lokalen System, um sich mit dem AKS-Cluster zu verbinden.

# az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

Wenn Sie Azure Cloud Shell verwenden, ist kubectl bereits installiert. Wenn Sie es lokal installieren möchten. Sobald Sie einen Kubernetes-Cluster mit Knoten haben, können Sie ein Lightning ADC-Daemon-Set erstellen, indem Sie die Cluster-ID und die API-Server-URL-Parameter über das A10 Harmony Portal generieren.

3. Melden Sie sich bei Harmony Controller GUI an und erstellen Sie Lightning ADC manual cluster

 

harmony controller Cluster erstellen
Harmony Controller Cluster anzeigen/bearbeiten
  • Sobald Sie den manuellen Cluster Lightning ADC erstellt haben, notieren Sie sich die Cluster-ID und die URL des API-Servers.
  • Stellen Sie das A10 Lightning ADC-Daemon-Set bereit, indem Sie die Beispieldatei LADC_daemon_Set.yaml herunterladen.
  • Bearbeiten Sie die Probe LADC_demon_Set.yaml Datei und geben Sie die ladc_cluster_id und API-Server-URL Details in die Datei ein und speichern Sie die Änderungen in der Datei.
  • Verwenden Sie den folgenden Befehl, um das A10 Lightning ADC Daemon-Set einzusetzen.

# kubectl create -f /path_to_file/LADC_demon_Set.yaml

4. Platzieren Sie die Harmony Controller Zugangsdaten in Kubernetes Secret

  • Laden Sie die Beispieldatei secret.yaml herunter
  • Bearbeiten Sie die Datei, geben Sie den Benutzernamen und das Passwort des Mieters im base64-Format ein und speichern Sie die Änderungen in der Datei.
  • Erstellen Sie den Tenant-Berechtigungsnachweis als Kubernetes-Geheimnis mit dem folgenden Befehl.

# kubectl create -f /path_to_file/secret.yaml

5. Einsatz von A10 Ingress Controller

  • Laden Sie die Beispieldatei deploy_ingress_controller.yaml herunter
  • Bearbeiten Sie die Datei und geben Sie die Parameter ein, z. B. Harmony Controller URL, Tenant name, LADC Cluster name, und speichern Sie die Änderungen in der Datei.
  • Stellen Sie den Ingress Controller mit dem Befehl

# kubectl create -f /path_to_file/deploy_ingress_controller.yaml

6. Ingress-Ressource erstellen

  • Die Ingress-Ressource ist das Objekt, mit dem Benutzer Regeln für den Lastausgleich und die Umschaltung von Inhalten definieren können. Erstellen Sie die Ingress-Ressource anhand der heruntergeladenen Beispieldatei Ingress_resource.yaml.
  • Bearbeiten Sie die Datei und geben Sie die Parameter ein, z. B. Dienstname, Hostname, Name des Backend-Dienstes, Portnummer.
  • Stellen Sie die Ingress-Controller-Ressource mit dem folgenden Befehl bereit.

# kubectl create -f /path_to_file/ingress_resource.yaml

7. Bereitstellen des Kubernetes Headless Service

  • Wenn ein Kubernetes-Dienst erstellt wird, übernimmt Kube-proxy standardmäßig die Rolle eines Lastausgleichs.
  • Wenn Lightning ADC in den Pfad eingefügt wird, wird Kube-Proxy überflüssig.
  • Durch die Bereitstellung des Anwendungsdienstes als Headless-Dienst wird Kube-Proxy aus dem Pfad entfernt und der Datenverkehr wird an Lightning ADC weitergeleitet.

8. Rufen Sie die Anwendungs-URL mit Ihrem Browser auf (z. B. https://myapplication. com)

9. Um die Analyse des Anwendungsverkehrs anzuzeigen, melden Sie sich am A10 Harmony Controller portal GUI an.

Das A10 Harmony Controller Portal, Analytics Dashboard zeigt die Echtzeit-Statistiken über den Benutzerverkehr der Anwendung, wie z. B. den aktuellen Verkehrsdurchsatz, die Antwortzeit, Verbindungsdetails sowie verschiedene Metriken für verschiedene Kategorien wie Client-Zusammenfassung, ADC-Leistung, Anwendungsantwortzeit und Serverzustand usw.

Die folgende Abbildung zeigt eine Zusammenfassung der Informationen über den Geo-Standort des Clients, Client-Anfragen und Server-Antwortcodes sowie die Anzahl der von Lightning ADC empfangenen Client-Anfragen. Dies hilft dem Administrator, den Benutzerverkehr zu identifizieren und zu kontrollieren.

harmony controller Analyse-Dashboard
Harmony Controller Analyse-Dashboard

Die folgende Abbildung zeigt das Diagramm der Round-Trip-HTTP-Anfrage-Antwort-Zeit, gemessen an verschiedenen Haltepunkten. Dies hilft dem Administrator, die Netzwerklatenz an den einzelnen Haltepunkten zu visualisieren und bietet eine schnelle Zusammenfassung, um schnell herauszufinden, ob es Probleme gibt und man diese untersuchen muss.

harmony controller Anfrage-Antwort-Dashboard
Harmony Controller Anfrage-Antwort Dashboard

Zusammenfassung

Azure AKS ist ein gehosteter Dienst, der die Bereitstellung eines verwalteten Kubernetes-Knoten-Clusters in Azure vereinfacht. Er reduziert die Komplexität und den betrieblichen Overhead der Kubernetes-Verwaltung, indem er einen Großteil dieser Aufgaben auf Azure verlagert. Darüber hinaus stellt der A10 Lightning ADC-Daemon den Lastausgleich her, überwacht den Anwendungsverkehr und bietet Anwendungssicherheit und granulare Analysen. Der Ingress-Controller kommuniziert die in den Ingress-Ressourcen angegebene Konfiguration über Harmony-APIs an A10 Harmony Controller und erstellt die erforderliche Anwendungskonfiguration.



Arshad Khan
|
August 14, 2018

Arshad arbeitet als Senior Product Marketing Engineer bei A10 Networks. Bevor er zu A10 kam, arbeitete er in den Bereichen technisches Marketing, Pre-Sales und Channel Management bei Appcito (das... Mehr lesen