Lernprogramm: Migrieren von Oracle WebLogic Server zu Azure Kubernetes Service (AKS) mit KEDA-Scaler basierend auf Prometheus-Metriken
In diesem Tutorial erfahren Sie, wie Sie Oracle WebLogic Server (WLS) zu Azure Kubernetes Service (AKS) migrieren und die automatische horizontale Skalierung basierend auf Prometheus-Metriken konfigurieren.
Sie führen in diesem Tutorial die folgenden Aufgaben durch:
- Erfahren Sie, welche WebLogic-Anwendungsmetriken Sie mit dem WebLogic Monitoring Exporter exportieren können.
- Stellen Sie eine WebLogic-Anwendung in AKS mithilfe eines Azure Marketplace-Angebots bereit.
- Aktivieren Sie den verwalteten Azure Monitor-Dienst für Prometheus mithilfe eines Azure Marketplace-Angebots.
- Geben Sie WLS-Metriken in einem Azure Monitor-Arbeitsbereich mithilfe eines Azure Marketplace-Angebots ein.
- Integrieren Sie Kubernetes Event-driven Autoscaling (KEDA) in einen AKS-Cluster mit einem Azure Marketplace-Angebot.
- Erstellen Sie eine KEDA-Skalierung basierend auf Prometheus-Metriken.
- Überprüfen Sie die Skalierungskonfiguration.
Das folgende Diagramm veranschaulicht die von Ihnen erstellte Architektur:
Das Angebot Oracle WebLogic Server in AKS führt einen WLS-Operator und eine WLS-Domäne in AKS aus. Der WLS-Operator verwaltet eine WLS-Domäne, die mit einem Model-in-Image-Domänenquelltyp bereitgestellt wird. Weitere Informationen zum WLS-Operator finden Sie unter Oracle WebLogic Kubernetes Operator.
Der WebLogic Monitoring Exporter liest WebLogic Server-Metriken aus und leitet sie zu Prometheus weiter. Der Exporter verwendet die WebLogic Server 12.2.1.x RESTful Management Interface für den Zugriff auf Laufzeitstatus und Metriken.
Der verwaltete Azure Monitor-Dienst für Prometheus erfasst und speichert im großen Stil Metriken von WLS unter Verwendung einer mit Prometheus kompatiblen Überwachungslösung – basierend auf dem Projekt Prometheus der Cloud Native Computing Foundation. Weitere Informationen finden Sie unter Verwalteter Azure Monitor-Dienst für Prometheus.
In diesem Artikel wird KEDA in Ihren AKS-Cluster integriert, um den WLS-Cluster basierend auf Prometheus-Metriken aus dem Azure Monitor-Arbeitsbereich zu skalieren. KEDA überwacht den verwalteten Azure Monitor-Dienst für Prometheus und fügt diese Daten zu AKS und dem Horizontal Pod Autoscaler (HPA) hinzu, um eine schnelle Skalierung der WLS-Workload zu fördern.
Der folgende WLS-Zustand und die folgenden Metriken werden standardmäßig exportiert. Sie können den Exporter so konfigurieren, dass andere Metriken bei Bedarf exportiert werden. Eine detaillierte Beschreibung der Konfiguration und Verwendung von WebLogic Monitoring Exporter finden Sie unter WebLogic Monitoring Exporter.
Voraussetzungen
- Ein Azure-Abonnement. Wenn Sie kein Azure-Abonnement besitzen, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.
- Stellen Sie sicher, dass Sie im Abonnement über die
Owner
-Rolle oder dieContributor
-Rolle und dieUser Access Administrator
-Rolle verfügen. Sie können die Aufgabe überprüfen, indem Sie die Schritte in Auflisten von Azure-Rollenzuweisungen mithilfe des Azure-Portals befolgen. - Bereiten Sie einen lokalen Computer mit Windows vor, auf dem WSL, GNU/Linux oder macOS installiert ist.
- Installieren Sie Azure CLI Version 2.54.0 oder höher, um Azure CLI-Befehle auszuführen.
- Installieren Sie kubectl, und richten Sie es ein.
- Installieren Sie cURL.
- Sie benötigen Anmeldeinformationen für ein Oracle-Konto mit einmaligem Anmelden (Single Sign-On, SSO). Informationen zum Erstellen eines Kontos finden Sie unter Oracle Account erstellen.
- Führen Sie die folgenden Schritte aus, um die Lizenzbedingungen für WLS zu akzeptieren:
- Besuchen Sie die Oracle Container Registry, und melden Sie sich an.
- Wenn Sie über eine Supportberechtigung verfügen, wählen Sie Middleware aus, suchen Sie weblogic_cpu, und wählen Sie den Eintrag aus.
- Wenn Sie keine Supportberechtigung von Oracle besitzen, wählen Sie Middleware aus, suchen Sie weblogic, und wählen Sie den Eintrag aus.
- Akzeptieren Sie den Lizenzvertrag.
Vorbereiten der Beispielanwendung
Dieser Artikel verwendet testwebapp aus dem weblogic-kubernetes-operator-Repository als Beispielanwendung.
Verwenden Sie die folgenden Befehle, um die vordefinierte Beispiel-App herunterzuladen und sie in ein Verzeichnis zu erweitern. Da in diesem Artikel mehrere Dateien geschrieben werden, erstellen diese Befehle ein Verzeichnis der obersten Ebene, um alles zu enthalten.
export BASE_DIR=$PWD/wlsaks
mkdir $BASE_DIR && cd $BASE_DIR
curl -L -o testwebapp.war https://aka.ms/wls-aks-testwebapp
unzip -d testwebapp testwebapp.war
Ändern der Beispielanwendung
In diesem Artikel wird die Metrik openSessionsCurrentCount
verwendet, um den WLS-Cluster nach oben und nach unten zu skalieren. Standardmäßig beträgt das Sitzungstimeout auf WebLogic Server 60 Minuten. Um die Skalierungsfunktion schnell zu beobachten, führen Sie die folgenden Schritte aus, um ein kurzes Timeout festzulegen:
Verwenden Sie den folgenden Befehl, um ein Sitzungstimeout von 150 Sekunden mithilfe von
wls:timeout-secs
anzugeben. DasHEREDOC
-Format wird verwendet, um die Datei unter testwebapp/WEB-INF/weblogic.xml mit dem gewünschten Inhalt zu überschreiben.cat <<EOF > testwebapp/WEB-INF/weblogic.xml <?xml version="1.0" encoding="UTF-8"?> <wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd"> <wls:weblogic-version>12.2.1</wls:weblogic-version> <wls:jsp-descriptor> <wls:keepgenerated>false</wls:keepgenerated> <wls:debug>false</wls:debug> </wls:jsp-descriptor> <wls:context-root>testwebapp</wls:context-root> <wls:session-descriptor> <wls:timeout-secs>150</wls:timeout-secs> </wls:session-descriptor> </wls:weblogic-web-app> EOF
Verwenden Sie den folgenden Befehl, um die Beispiel-App zu entpacken:
cd testwebapp && zip -r ../testwebapp.war * && cd ..
Erstellen eines Azure Storage-Kontos und Hochladen der Anwendung
Führen Sie die folgenden Schritte, um ein Speicherkonto und einen Container zu erstellen. Bei einigen Schritten werden Sie zu anderen Anleitungen weitergeleitet. Nachdem Sie die Schritte ausgeführt haben, können Sie eine Beispielanwendung hochladen, die in WLS bereitgestellt werden soll.
- Melden Sie sich beim Azure-Portal an.
- Erstellen Sie ein Speicherkonto, indem Sie die Schritte unter Erstellen eines Speicherkontos ausführen. Verwenden Sie die folgenden Spezialisierungen für die Werte in diesem Artikel:
- Erstellen Sie eine neue Ressourcengruppe für das Speicherkonto.
- Wählen Sie als Region die Option USA, Osten aus.
- Verwenden Sie für Speicherkontoname denselben Wert wie für den Namen der Ressourcengruppe.
- Wählen Sie für Leistung die Option Standard aus.
- Die verbleibenden Registerkarten benötigen keine Spezialisierungen.
- Fahren Sie mit der Überprüfung und Erstellung des Kontos fort, und kehren Sie zu diesem Artikel zurück.
- Erstellen Sie einen Speichercontainer innerhalb des Kontos, indem Sie die Schritte im Abschnitt Erstellen eines Containers der Schnellstartanleitung: Hochladen, Herunterladen und Auflisten von Blobs mit dem Azure-Portal ausführen.
- Führen Sie im selben Artikel die Schritte im Abschnitt Hochladen eines Block-Bobs auf, um die Datei testwebapp.war hochzuladen. Kehren Sie dann zu diesem Artikel zurück.
Bereitstellen von WLS auf AKS mithilfe des Azure Marketplace-Angebots
In diesem Abschnitt erstellen Sie einen WLS-Cluster auf AKS mit dem Oracle-Angebot WebLogic Server im AKS. Das Angebot bietet einen vollständigen Funktionssatz für die einfache Bereitstellung von WebLogic Server auf AKS. Dieser Artikel konzentriert sich auf die erweiterten dynamischen Skalierungsfunktionen des Angebots. Weitere Informationen zum Angebot finden Sie unter Bereitstellen einer Java-Anwendung mit WebLogic Server in einem Azure Kubernetes Service (AKS)-Cluster. Die vollständige Referenzdokumentation für das Angebot finden Sie in der Oracle-Dokumentation.
Dieses Angebot implementiert die folgenden Optionen für die horizontale automatische Skalierung:
Kubernetes Metrics Server. Diese Auswahl richtet alle erforderlichen Konfigurationen zur Bereitstellungszeit ein. Ein Horizontal Pod Autoscaler (HPA) wird mit einer Auswahl von Metriken bereitgestellt. Sie können den HPA nach der Bereitstellung weiter anpassen.
WebLogic Monitoring Exporter. Diese Option stellt webLogic Monitoring Exporter, den verwalteten Azure Monitor-Dienst für Prometheus und KEDA automatisch zur Auswahl. Nach Abschluss der Bereitstellung des Angebots werden die WLS-Metriken exportiert und im Azure Monitor-Arbeitsbereich gespeichert. KEDA wird mit der Möglichkeit installiert, Metriken aus dem Azure Monitor-Arbeitsbereich abzurufen.
Mit dieser Option müssen Sie nach der Bereitstellung weitere Schritte ausführen, um die Konfiguration abzuschließen.
In diesem Artikel wird die zweite Option beschrieben. Verwenden Sie die folgenden Schritte, um die Konfiguration abzuschließen:
Öffnen Sie das Angebot Oracle WebLogic Server auf AKS in Ihrem Browser, und wählen Sie Erstellen aus. Der Bereich Grundeinstellungen des Angebots sollte angezeigt werden.
Führen Sie die folgenden Schritte aus, um den Bereich Grundeinstellungen auszufüllen:
- Stellen Sie sicher, dass der für Abonnement angezeigte Wert mit dem Wert übereinstimmt, der die im Abschnitt „Voraussetzungen“ aufgeführten Rollen enthält.
- Sie müssen das Angebot in einer leeren Ressourcengruppe bereitstellen. Wählen Sie im Feld Ressourcengruppe die Option Neu erstellen aus, und geben Sie einen eindeutigen Wert für die Ressourcengruppe ein, z. B. wlsaks-eastus-20240109.
- Wählen Sie unter Instanzdetails für Region die Option USA, Osten aus.
- Geben Sie unter Anmeldeinformationen WebLogic ein Passwort für WebLogic-Administrator und WebLogic-Modellverschlüsselung ein. Speichern Sie den Benutzernamen und das Kennwort für WebSphere Administrator.
- Wählen Sie neben Optionale Basiskonfiguration die Option Nein aus.
- Legen Sie unter Optionale Basiskonfiguration die Option Maximale dynamische Cluster-Größe auf 10 fest. Mit diesem Wert können Sie das Verhalten der automatischen Skalierung beobachten.
Wählen Sie Weiter aus, und navigieren Sie zur Registerkarte AKS.
Führen Sie unter Image-Auswahl die folgenden Schritte aus:
- Geben Sie für Benutzername für Oracle Single Sign-On-Authentifizierung Ihren Oracle SSO-Benutzernamen aus den Vorbedingungen ein.
- Geben Sie für Kennwort für Oracle Single Sign-On-Authentifizierung Ihre Oracle SSO-Anmeldeinformationen aus den Vorbedingungen ein.
Führen Sie unter Anwendung die folgenden Schritte aus:
Wählen Sie im Abschnitt Anwendung neben Anwendung bereitstellen? die Option „Ja“ aus.
Wählen Sie neben Anwendungspaket (WAR, EAR, JAR) die Option Durchsuchen aus.
Beginnen Sie mit der Eingabe des Speicherkontonamens aus dem vorherigen Abschnitt. Wenn das gewünschte Speicherkonto angezeigt wird, wählen Sie es aus.
Wählen Sie den Speichercontainer aus dem vorherigen Abschnitt aus.
Aktivieren Sie das Kontrollkästchen neben testwebapp.war, das Sie im vorherigen Abschnitt hochgeladen haben. Wählen Sie Auswählen aus.
Wählen Sie Weiter aus.
Behalten Sie die Standardwerte im Bereich TLS/SSL-Konfiguration bei. Wählen Sie Weiter aus, um zum Bereich Load Balancing zu navigieren. Verwenden Sie dann die folgenden Schritte:
- Behalten Sie die Standardwerte für alle Optionen außer Erstellen Sie einen Eingang für die Administrationskonsole. Stellen Sie sicher, dass keine Anwendung den Pfad /console* hat, da dies zu Konflikten mit dem Pfad der Administrationskonsole führen würde. bei. Wählen Sie für diese Option Ja aus.
- Verwenden Sie in den restlichen Feldern die Standardwerte.
- Wählen Sie Weiter aus.
Behalten Sie die Standardwerte für den DNS-Bereich bei, und wählen Sie dann Weiter aus, um zum Bereich Datenbank zu wechseln.
Behalten Sie die Standardwerte für den Bereich Datenbank bei, wählen Sie Weiter aus, um zum Bereich Automatische Skalierung zu navigieren. Führen Sie dann die folgenden Schritte aus:
- Wählen Sie neben Ressourcen für horizontale automatische Skalierung bereitstellen? die Option Ja aus.
- Wählen Sie unter Horizontale automatische Skalierung neben Wählen Sie Optionen für die automatische Skalierung aus. die Option WebLogic Monitor Exporter (erweiterte automatische Skalierung) aus.
- Klicken Sie auf Überprüfen + erstellen.
Warten Sie, bis Abschließende Überprüfung wird ausgeführt... erfolgreich abgeschlossen ist. Wählen Sie dann Erstellen aus. Nach einiger Zeit sollte die Seite Bereitstellung angezeigt werden, auf der Bereitstellung wird ausgeführt angezeigt wird.
Wenn bei Abschließende Überprüfung wird ausgeführt... Probleme auftreten, beheben Sie diese, und versuchen Sie es erneut.
Herstellen einer Verbindung mit dem AKS-Cluster
In den folgenden Abschnitten ist ein Terminal mit kubectl
installiert, um den WLS-Cluster zu verwalten. Um kubectl
lokal zu installieren, verwenden Sie den Befehl az aks install-cli.
Führen Sie die folgenden Schritte aus, um eine Verbindung zum AKS-Cluster herzustellen:
- Öffnen Sie das Azure-Portal, und wechseln Sie zu der Ressourcengruppe, die Sie im Abschnitt Bereitstellen von WLS auf AKS mithilfe des Azure Marketplace-Angebots bereitgestellt haben.
- Wählen Sie die Ressource des Typs Kubernetes service aus der Ressourcenliste aus.
- Wählen Sie Verbinden. Anleitungen zum Verbinden des AKS-Clusters werden angezeigt.
- Wählen Sie Azure CLI aus, und befolgen Sie die Schritte, um eine Verbindung zum AKS-Cluster in Ihrem lokalen Terminal herzustellen.
Abrufen von Metriken aus dem Azure Monitor-Arbeitsbereich
Führen Sie die folgenden Schritte aus, um Metriken im Azure Monitor-Arbeitsbereich mithilfe von Prometheus Query Language-Abfragen (PromQL)anzuzeigen:
Zeigen Sie im Azure-Portal die Ressourcengruppe an, die Sie im Abschnitt Bereitstellen von WLS auf AKS mithilfe des Azure Marketplace-Angebots verwendet haben.
Wählen Sie die Ressource des Typs Azure Monitor-Arbeitsbereich aus.
Wählen Sie unter Managed Prometheus die Option Prometheus explorer aus.
Geben Sie
webapp_config_open_sessions_current_count
an, um das aktuelle Konto geöffneter Sitzungen abzufragen, wie im folgenden Screenshot dargestellt:
Hinweis
Sie können den folgenden Befehl verwenden, um auf die Metriken zuzugreifen, indem Sie den WebLogic Monitoring Exporter verfügbar machen:
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Service
metadata:
name: sample-domain1-cluster-1-exporter
namespace: sample-domain1-ns
spec:
ports:
- name: default
port: 8080
protocol: TCP
targetPort: 8080
selector:
weblogic.domainUID: sample-domain1
weblogic.clusterName: cluster-1
sessionAffinity: None
type: LoadBalancer
EOF
kubectl get svc -n sample-domain1-ns -w
Warten Sie auf die EXTERNAL-IP
-Spalte in der Zeile für sample-domain1-cluster-1-exporter
darauf, dass diese von <pending>
zu einer IP-Adresse wechselt. Öffnen Sie dann die URL http://<exporter-public-ip>:8080/metrics
in einem Browser, und melden Sie sich mit den Anmeldeinformationen an, die Sie beim Bereitstellen des Angebots angegeben haben. Hier finden Sie alle verfügbaren Metriken. Sie können alle diese Werte in das PromQL-Fenster eingeben, um sie in Azure Monitor anzuzeigen. heap_free_percent
zeigt beispielsweise ein interessantes Diagramm an. Um den Speicherdruck zu beobachten, während die Last auf die Anwendung angewendet wird, legen Sie Auto refresh und Time range auf das kleinstmögliche Intervall fest und lassen Sie die Registerkarte geöffnet.
Erstellen der KEDA-Skalierung
Skalierungsmodule definieren, wie und wann KEDA eine Bereitstellung skalieren soll. In diesem Artikel wird der Prometheus Scaler zum Abrufen von Prometheus-Metriken aus dem Azure Monitor-Arbeitsbereich verwendet.
In diesem Artikel wird openSessionsCurrentCount
als Trigger verwendet. Die Regel für diese Metrik wird wie folgt beschrieben. Wenn die durchschnittliche Anzahl der geöffneten Sitzungen mehr als 10 beträgt, skalieren Sie den WLS-Cluster, bis sie die maximale Replikatgröße erreicht. Skalieren Sie andernfalls den WLS-Cluster nach unten, bis sie die minimale Replikatgröße erreicht. In der folgenden Tabelle sind die wichtigsten Parameter aufgeführt:
Parametername | Wert |
---|---|
serverAddress |
Der Abfrageendpunkt Ihres Azure Monitor-Arbeitsbereichs. |
metricName |
webapp_config_open_sessions_current_count |
query |
sum(webapp_config_open_sessions_current_count{app="app1"}) |
threshold |
10 |
minReplicaCount |
1 |
maxReplicaCount |
Der Standardwert ist 5. Wenn Sie die maximale Clustergröße während der Bereitstellung des Angebots geändert haben, ersetzen Sie diese durch Ihre maximale Clustergröße. |
Da Sie WebLogic Monitoring Exporter zur Bereitstellungszeit ausgewählt haben, kann eine KEDA-Skalierung bereitgestellt werden. Die folgenden Schritte zeigen, wie Sie die KEDA-Skalierung für die Verwendung mit Ihrem AKS-Cluster konfigurieren:
Öffnen Sie das Azure-Portal, und wechseln Sie zu der Ressourcengruppe, die Sie im Abschnitt Bereitstellen von WLS auf AKS mithilfe des Azure Marketplace-Angebots bereitgestellt haben.
Wählen Sie im linken Navigationsbereich im Abschnitt Einstellungen die Option Bereitstellungen aus. Es wird eine sortierte Liste der Bereitstellungen für diese Ressourcengruppe angezeigt, wobei die neueste Bereitstellung zuerst aufgeführt wird.
Scrollen Sie zum ältesten Eintrag in dieser Liste. Dieser Eintrag entspricht der Bereitstellung, die Sie im vorherigen Abschnitt gestartet haben. Wählen Sie die älteste Bereitstellung aus, deren Name mit einem ähnlichen Namen wie
oracle.20210620-wls-on-aks
beginnt.Klicken Sie auf Ausgaben. Diese Option zeigt die Liste der Ausgaben aus der Bereitstellung an.
Der kedaScalerServerAddress-Wert ist die die Serveradresse, die die WLS-Metriken speichert. KEDA kann auf Metriken von der Adresse zugreifen und diese abrufen.
Der ShellCmdtoOutputKedaScalerSample-Wert ist die
base64
-Zeichenfolge eines Skalierungsbeispiels. Kopieren Sie den Wert, und führen Sie ihn in Ihrem Terminal aus. Der Befehl sollte in etwa wie im folgenden Beispiel aussehen:echo -e YXBpVm...XV0aAo= | base64 -d > scaler.yaml
Dieser Befehl erzeugt eine scaler.yaml-Datei im aktuellen Verzeichnis.
Ändern Sie die Zeilen
metric:
undquery:
in scaler.yaml wie im folgenden Beispiel dargestellt:metricName: webapp_config_open_sessions_current_count query: sum(webapp_config_open_sessions_current_count{app="app1"})
Hinweis
Wenn Sie eine App mit dem Angebot bereitstellen, wird sie standardmäßig
app1
genannt. Mit den folgenden Schritten können Sie auf die WLS-Verwaltungskonsole zugreifen, um den Anwendungsnamen abzurufen:- Führen Sie die vorstehenden Schritte aus, um die Bereitstellungsausgaben anzuzeigen.
- Der Wert "adminConsoleExternalUrl " ist der vollqualifizierte, öffentliche Internetlink zur WLS-Verwaltungskonsole. Wählen Sie das Kopiersymbol neben dem Feldwert aus, um den Link in die Zwischenablage zu kopieren.
- Fügen Sie den Wert in Ihren Browser ein, und öffnen Sie die WLS-Verwaltungskonsole.
- Melden Sie sich mit dem WLS-Administratorkonto an, das Sie im Abschnitt Bereitstellen von WLS auf AKS mithilfe des Azure Marketplace-Angebots gespeichert haben.
- Wählen Sie unter Domänenstruktur die Option Bereitstellungen aus. app1 wird aufgeführt.
- Wählen Sie app1 aus, um zu ermitteln, dass der Name-Wert für die Anwendung
app1
ist. Verwenden Sieapp1
als Anwendungsname in der Abfrage.
Ändern Sie bei Bedarf die Zeile
maxReplicaCount:
in scaler.yaml, wie im folgenden Beispiel dargestellt. Es ist ein Fehler, diesen Wert höher festzulegen als das, was Sie zur Bereitstellungszeit auf der Registerkarte AKS angegeben haben.maxReplicaCount: 10
Verwenden Sie den folgenden Befehl, um die KEDA-Skalierungsregel zu erstellen, indem Sie scaler.yaml anwenden:
kubectl apply -f scaler.yaml
Es dauert mehrere Minuten, bis KEDA Metriken aus dem Azure Monitor-Arbeitsbereich abruft. Sie können den Status der Skalierung mit dem folgenden Befehl überwachen:
kubectl get hpa -n sample-domain1-ns -w
Nachdem die Skalierung einsatzbereit ist, sieht die Ausgabe ähnlich wie der folgende Inhalt aus. Der Wert in der Spalte
TARGETS
wechselt von<unknown>
zu0
.NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE keda-hpa-azure-managed-prometheus-scaler Cluster/sample-domain1-cluster-1 0/10 (avg) 1 5 2 15s
Testen der automatischen Skalierung
Jetzt können Sie die automatische Skalierungsfunktion beobachten. In diesem Artikel werden neue Sitzungen mithilfe von curl
geöffnet, um auf die Anwendung zuzugreifen. Nachdem die durchschnittliche Sitzungsanzahl größer als 10 ist, erfolgt die Skalierungsaktion. Die Sitzungen dauern 150 Sekunden, und die Anzahl der geöffneten Sitzungen sinkt, während die Sitzungen ablaufen. Nachdem die durchschnittliche Sitzungsanzahl kleiner als 10 ist, erfolgt die Aktion zum Herunterskalieren. Führen Sie die folgenden Schritte aus, um die Aktionen zum Hoch- oder Herunterskalieren auszulösen:
Verwenden Sie die folgenden Schritte, um die Anwendungs-URL zu erhalten:
- Führen Sie die vorstehenden Schritte aus, um die Bereitstellungsausgaben anzuzeigen.
- Der clusterExternalUrl-Wert ist der vollqualifizierte, im öffentlichen Internet sichtbare Link zur Beispiel-App, die in WLS auf diesem AKS-Cluster bereitgestellt wird. Um den Link in Ihre Zwischenablage zu kopieren, wählen Sie das Symbol „Kopieren“ neben dem Feldwert aus.
- Die URL für den Zugriff auf testwebapp.war lautet
${clusterExternalUrl}testwebapp
– z. B.http://wlsgw202403-wlsaks0314-domain1.eastus.cloudapp.azure.com/testwebapp/
.
Führen Sie den
curl
-Befehl aus, um auf die Anwendung zuzugreifen und neue Sitzungen auszulösen. Im folgenden Beispiel werden 22 neue Sitzungen geöffnet. Die Sitzungen sind nach 150 Sekunden abgelaufen. Ersetzen Sie den WLS_CLUSTER_EXTERNAL_URL-Wert durch Ihre Werte.COUNTER=0 MAXCURL=22 WLS_CLUSTER_EXTERNAL_URL="http://wlsgw202403-wlsaks0314-domain1.eastus.cloudapp.azure.com/" APP_URL="${WLS_CLUSTER_EXTERNAL_URL}testwebapp/" while [ $COUNTER -lt $MAXCURL ]; do curl ${APP_URL}; let COUNTER=COUNTER+1; sleep 1;done
Verwenden Sie in zwei separaten Shells die folgenden Befehle:
Verwenden Sie den folgenden Befehl, um die Skalierung zu beobachten:
kubectl get hpa -n sample-domain1-ns -w
Dieser Befehl erzeugt eine Ausgabe ähnlich wie im folgenden Beispiel:
$ kubectl get hpa -n sample-domain1-ns -w NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE keda-hpa-azure-managed-prometheus-scaler Cluster/sample-domain1-cluster-1 0/10 (avg) 1 10 1 24m keda-hpa-azure-managed-prometheus-scaler Cluster/sample-domain1-cluster-1 0/10 (avg) 1 10 1 24m keda-hpa-azure-managed-prometheus-scaler Cluster/sample-domain1-cluster-1 5/10 (avg) 1 10 1 26m keda-hpa-azure-managed-prometheus-scaler Cluster/sample-domain1-cluster-1 22/10 (avg) 1 10 1 27m keda-hpa-azure-managed-prometheus-scaler Cluster/sample-domain1-cluster-1 7334m/10 (avg) 1 10 3 29m keda-hpa-azure-managed-prometheus-scaler Cluster/sample-domain1-cluster-1 14667m/10 (avg) 1 10 3 48m keda-hpa-azure-managed-prometheus-scaler Cluster/sample-domain1-cluster-1 0/10 (avg) 1 10 3 30m keda-hpa-azure-managed-prometheus-scaler Cluster/sample-domain1-cluster-1 0/10 (avg) 1 10 3 35m keda-hpa-azure-managed-prometheus-scaler Cluster/sample-domain1-cluster-1 0/10 (avg) 1 10 1 35m keda-hpa-azure-managed-prometheus-scaler Cluster/sample-domain1-cluster-1 0/10 (avg) 1 10 5 53m
Verwenden Sie in einer separaten Shell den folgenden Befehl, um die WLS-Pods zu beobachten:
kubectl get pod -n sample-domain1-ns -w
Dieser Befehl erzeugt eine Ausgabe ähnlich wie im folgenden Beispiel:
$ kubectl get pod -n sample-domain1-ns -w NAME READY STATUS RESTARTS AGE sample-domain1-admin-server 2/2 Running 0 28h sample-domain1-managed-server1 2/2 Running 0 28h sample-domain1-managed-server1 2/2 Running 0 28h sample-domain1-managed-server2 0/2 Pending 0 0s sample-domain1-managed-server2 0/2 Pending 0 0s sample-domain1-managed-server2 0/2 ContainerCreating 0 0s sample-domain1-managed-server3 0/2 Pending 0 0s sample-domain1-managed-server3 0/2 Pending 0 0s sample-domain1-managed-server3 0/2 ContainerCreating 0 0s sample-domain1-managed-server3 1/2 Running 0 1s sample-domain1-admin-server 2/2 Running 0 95m sample-domain1-managed-server1 2/2 Running 0 94m sample-domain1-managed-server2 2/2 Running 0 56s sample-domain1-managed-server3 2/2 Running 0 55s sample-domain1-managed-server4 1/2 Running 0 9s sample-domain1-managed-server5 1/2 Running 0 9s sample-domain1-managed-server5 2/2 Running 0 37s sample-domain1-managed-server4 2/2 Running 0 42s sample-domain1-managed-server5 1/2 Terminating 0 6m46s sample-domain1-managed-server5 1/2 Terminating 0 6m46s sample-domain1-managed-server4 1/2 Running 0 6m51s sample-domain1-managed-server4 1/2 Terminating 0 6m53s sample-domain1-managed-server4 1/2 Terminating 0 6m53s sample-domain1-managed-server3 1/2 Running 0 7m40s sample-domain1-managed-server3 1/2 Terminating 0 7m45s sample-domain1-managed-server3 1/2 Terminating 0 7m45s
Das Diagramm im Azure Monitor-Arbeitsbereich ähnelt dem folgenden Screenshot:
Bereinigen von Ressourcen
Zum Vermeiden von Azure-Gebühren sollten Sie nicht benötigte Ressourcen bereinigen. Wenn Sie den Cluster nicht mehr benötigen, verwenden Sie den Befehl az group delete. Mit den folgenden Befehlen werden die Ressourcengruppe, der Containerdienst, die Containerregistrierung und alle zugehörigen Ressourcen entfernt:
az group delete --name <wls-resource-group-name> --yes --no-wait
az group delete --name <ama-resource-group-name> --yes --no-wait
Nächste Schritte
Weitere Optionen zum Erstellen von automatischen Skalierungslösungen und Ausführen von WLS in Azure werden in den folgenden Referenzen beschrieben: