Udostępnij za pośrednictwem


Samouczek: migrowanie serwera Oracle WebLogic Do usługi Azure Kubernetes Service (AKS) za pomocą narzędzia skalowania KEDA na podstawie metryk rozwiązania Prometheus

W tym samouczku pokazano, jak przeprowadzić migrację serwera Oracle WebLogic Server (WLS) do usługi Azure Kubernetes Service (AKS) i skonfigurować automatyczne skalowanie w poziomie na podstawie metryk rozwiązania Prometheus.

W tym samouczku wykonasz następujące zadania:

  • Dowiedz się, które metryki aplikacji WebLogic można eksportować przy użyciu eksportera monitorowania WebLogic.
  • Wdrażanie i uruchamianie aplikacji WebLogic w AKS przy użyciu oferty Azure Marketplace.
  • Włącz usługę zarządzaną Azure Monitor dla rozwiązania Prometheus przy użyciu oferty witryny Azure Marketplace.
  • Przekaż metryki ZLS do obszaru roboczego usługi Azure Monitor przy użyciu oferty witryny Azure Marketplace.
  • Integrowanie automatycznego skalowania opartego na zdarzeniach platformy Kubernetes (KEDA) z klastrem usługi AKS przy użyciu oferty witryny Azure Marketplace.
  • Utwórz program skalowania KEDA na podstawie metryk rozwiązania Prometheus.
  • Zweryfikuj konfigurację narzędzia scaler.

Na poniższym diagramie przedstawiono utworzoną architekturę:

Diagram architektury rozwiązania WLS w usłudze AKS z narzędziem skalowania KEDA opartym na metrykach rozwiązania Prometheus.

Oferta Oracle WebLogic Server w usłudze AKS uruchamia operator WLS i domenę WLS w usłudze AKS. Operator WLS zarządza domeną WLS wdrożona przy użyciu modelu w typie źródła domeny obrazu . Aby dowiedzieć się więcej na temat operatora WLS, zobacz Oracle WebLogic Kubernetes Operator.

Eksporter monitorowania WebLogic usuwa metryki serwera WebLogic i przekazuje je do rozwiązania Prometheus. Eksporter używa interfejsu zarządzania RESTful serwera WebLogic Server 12.2.1.x do uzyskiwania dostępu do stanu i metryk środowiska uruchomieniowego.

Usługa zarządzana usługi Azure Monitor dla rozwiązania Prometheus zbiera i zapisuje metryki z poziomu ZLS na dużą skalę przy użyciu rozwiązania do monitorowania zgodnego z rozwiązaniem Prometheus w oparciu o projekt Prometheus z poziomu natywnej bazy danych obliczeniowych w chmurze. Aby uzyskać więcej informacji, zobacz Usługa zarządzana usługi Azure Monitor dla rozwiązania Prometheus.

Ten artykuł integruje usługę KEDA z klastrem usługi AKS w celu skalowania klastra WLS na podstawie metryk rozwiązania Prometheus z obszaru roboczego usługi Azure Monitor. Usługa KEDA monitoruje zarządzaną usługę Azure Monitor dla rozwiązania Prometheus i generuje te dane do usługi AKS i narzędzia Horizontal Pod Autoscaler (HPA) w celu szybkiego skalowania obciążenia WLS.

Następujący stan i metryki ZLS są domyślnie eksportowane. Eksportera można skonfigurować tak, aby eksportował inne metryki na żądanie. Aby uzyskać szczegółowy opis konfiguracji i użycia eksportera monitorowania WebLogic, zobacz WebLogic Monitoring Exporter (Eksporter monitorowania WebLogic).

Metryki WebLogic.

Wymagania wstępne

  • Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
  • Upewnij się, że masz Owner rolę lub Contributor role i User Access Administrator w subskrypcji. Przypisanie można sprawdzić, wykonując kroki opisane w temacie Wyświetlanie listy przypisań ról platformy Azure przy użyciu witryny Azure Portal.
  • Przygotuj maszynę lokalną z systemem Windows z zainstalowanym systemem WSL, GNU/Linux lub macOS.
  • Zainstaluj interfejs wiersza polecenia platformy Azure w wersji 2.54.0 lub nowszej, aby uruchomić polecenia interfejsu wiersza polecenia platformy Azure.
  • Zainstaluj i skonfiguruj narzędzie kubectl.
  • Zainstaluj program cURL.
  • Poświadczenia dla konta logowania jednokrotnego (SSO) oracle. Aby je utworzyć, zobacz Tworzenie konta Oracle.
  • Aby zaakceptować postanowienia licencyjne dotyczące zabezpieczeń WLS, wykonaj następujące kroki:
    1. Odwiedź usługę Oracle Container Registry i zaloguj się.
    2. Jeśli masz uprawnienie do pomocy technicznej, wybierz pozycję Oprogramowanie pośredniczące, a następnie wyszukaj i wybierz pozycję weblogic_cpu.
    3. Jeśli nie masz uprawnień do pomocy technicznej w programie Oracle, wybierz pozycję Oprogramowanie pośredniczące, a następnie wyszukaj i wybierz pozycję weblogic.
    4. Zaakceptuj umowę licencyjną.

Przygotowywanie przykładowej aplikacji

W tym artykule użyto aplikacji testwebapp z repozytorium weblogic-kubernetes-operator jako przykładowej aplikacji.

Użyj następujących poleceń, aby pobrać wstępnie utworzoną przykładową aplikację i rozwinąć ją w katalogu. Ponieważ w tym artykule jest zapisywanych kilka plików, te polecenia tworzą katalog najwyższego poziomu zawierający wszystko.

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

Modyfikowanie przykładowej aplikacji

W tym artykule użyto metryki openSessionsCurrentCount do skalowania w górę i w dół klastra WLS. Domyślnie limit czasu sesji na serwerze WebLogic wynosi 60 minut. Aby szybko obserwować możliwości skalowania w dół, wykonaj następujące kroki, aby ustawić krótki limit czasu:

  1. Użyj następującego polecenia, aby określić limit czasu sesji 150 sekund przy użyciu polecenia wls:timeout-secs. Format HEREDOC jest używany do zastępowania pliku w pliku testwebapp/WEB-INF/weblogic.xml z żądaną zawartością.

    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
    
  2. Użyj następującego polecenia, aby ponownie rozpakuj przykładową aplikację:

    cd testwebapp && zip -r ../testwebapp.war * && cd ..
    

Tworzenie konta usługi Azure Storage i przekazywanie aplikacji

Wykonaj poniższe kroki, aby utworzyć konto magazynu i kontener. Niektóre z tych kroków kierują Cię do innych przewodników. Po wykonaniu tych kroków możesz przekazać przykładową aplikację do wdrożenia w usłudze WLS.

  1. Zaloguj się w witrynie Azure Portal.
  2. Utwórz konto magazynu, wykonując kroki opisane w temacie Tworzenie konta magazynu. Użyj następujących specjalizacji dla wartości w tym artykule:
    • Utwórz nową grupę zasobów dla konta magazynu.
    • W obszarze Region wybierz pozycję Wschodnie stany USA.
    • W polu Nazwa konta magazynu użyj tej samej wartości co nazwa grupy zasobów.
    • W obszarze Wydajność wybierz opcję Standardowa.
    • Pozostałe karty nie wymagają specjalizacji.
  3. Przejdź do weryfikowania i tworzenia konta, a następnie wróć do tego artykułu.
  4. Utwórz kontener magazynu na koncie, wykonując kroki opisane w sekcji Tworzenie kontenera w przewodniku Szybki start: przekazywanie, pobieranie i wyświetlanie listy obiektów blob za pomocą witryny Azure Portal.
  5. W tym samym artykule wykonaj kroki opisane w sekcji Przekazywanie blokowego obiektu blob , aby przekazać plik testwebapp.war . Następnie wróć do tego artykułu.

Wdrażanie zabezpieczeń WLS w usłudze AKS przy użyciu oferty witryny Azure Marketplace

W tej sekcji utworzysz klaster WLS w usłudze AKS przy użyciu oferty Oracle WebLogic Server w usłudze AKS . Oferta zapewnia pełny zestaw funkcji do łatwego wdrażania serwera WebLogic w usłudze AKS. Ten artykuł koncentruje się na zaawansowanych możliwościach dynamicznego skalowania oferty. Aby uzyskać więcej informacji na temat oferty, zobacz Deploy a Java application with WebLogic Server on an Azure Kubernetes Service (AKS) cluster (Wdrażanie aplikacji Java za pomocą serwera WebLogic w klastrze usługi Azure Kubernetes Service (AKS). Aby uzyskać pełną dokumentację referencyjną dotyczącą oferty, zobacz dokumentację oracle.

Ta oferta implementuje następujące opcje skalowania automatycznego w poziomie:

  • Serwer metryk platformy Kubernetes. Ten wybór konfiguruje wszystkie niezbędne konfiguracje w czasie wdrażania. Narzędzie do automatycznego skalowania zasobników (HPA) jest wdrażane z wybranymi metrykami. Po wdrożeniu można dodatkowo dostosować narzędzie HPA.

  • Eksporter monitorowania WebLogic. Ten wybór automatycznie aprowizuje eksportera monitorowania WebLogic, usługę zarządzaną usługi Azure Monitor dla rozwiązania Prometheus i KEDA. Po zakończeniu wdrażania oferty metryki WLS są eksportowane i zapisywane w obszarze roboczym usługi Azure Monitor. Usługa KEDA jest instalowana z możliwością pobierania metryk z obszaru roboczego usługi Azure Monitor.

    W przypadku tej opcji należy wykonać więcej kroków po wdrożeniu, aby ukończyć konfigurację.

W tym artykule opisano drugą opcję. Aby ukończyć konfigurację, wykonaj następujące czynności:

  1. Otwórz ofertę Oracle WebLogic Server w usłudze AKS w przeglądarce i wybierz pozycję Utwórz. Powinno zostać wyświetlone okienko Podstawy oferty.

  2. Aby wypełnić okienko Podstawy , wykonaj następujące kroki:

    1. Upewnij się, że wartość wyświetlana dla subskrypcji jest taka sama, która ma role wymienione w sekcji wymagań wstępnych.
    2. W polu Grupa zasobów wybierz pozycję Utwórz nową i wypełnij unikatową wartość dla grupy zasobów — na przykład wlsaks-eastus-20240109.
    3. W obszarze Szczegóły wystąpienia w obszarze Region wybierz pozycję Wschodnie stany USA.
    4. W obszarze Credentials WebLogic podaj hasło do szyfrowania WebLogic Administrator i WebLogic Model, odpowiednio. Zapisz nazwę użytkownika i hasło dla administratora serwera WebLogic.
    5. Obok pozycji Opcjonalna konfiguracja podstawowa wybierz pozycję Nie.
    6. W obszarze Opcjonalna konfiguracja podstawowa ustaw maksymalny rozmiar klastra dynamicznego na 10. Ta wartość umożliwia obserwowanie zachowania skalowania automatycznego.

    Zrzut ekranu witryny Azure Portal przedstawiający okienko Oracle WebLogic Server w okienku Podstawy usługi AKS.

  3. Wybierz pozycję Dalej i przejdź do karty AKS .

  4. W obszarze Wybór obrazu wykonaj następujące czynności:

    1. W przypadku uwierzytelniania logowania jednokrotnego oracle wprowadź nazwę użytkownika logowania jednokrotnego Oracle z wymagań wstępnych.
    2. Aby uzyskać hasło do uwierzytelniania logowania jednokrotnego Oracle, wypełnij poświadczenia logowania jednokrotnego Oracle z wymagań wstępnych.

    Zrzut ekranu witryny Azure Portal przedstawiający okienko Oracle WebLogic Server w okienku AKS — wybór obrazu.

  5. W obszarze Aplikacja wykonaj następujące czynności:

    1. W sekcji Aplikacja obok pozycji Wdróż aplikację? wybierz pozycję Tak.

    2. Obok pozycji Pakiet aplikacji (.war,.ear,.jar), wybierz pozycję Przeglądaj.

    3. Zacznij wpisywać nazwę konta magazynu z poprzedniej sekcji. Po wyświetleniu żądanego konta magazynu wybierz je.

    4. Wybierz kontener magazynu z poprzedniej sekcji.

    5. Zaznacz pole wyboru obok pliku testwebapp.war, który został przekazany w poprzedniej sekcji. Wybierz pozycję Wybierz.

    6. Wybierz Dalej.

      Zrzut ekranu witryny Azure Portal przedstawiający okienko Oracle WebLogic Server w usłudze AKS — wybór aplikacji.

  6. Pozostaw wartości domyślne w okienku Konfiguracja protokołu TLS/SSL. Wybierz pozycję Dalej , aby przejść do okienka Równoważenie obciążenia, a następnie wykonaj następujące kroki:

    1. Pozostaw wartości domyślne dla wszystkich opcji z wyjątkiem Utwórz ruch przychodzący dla konsoli administracyjnej. Upewnij się, że żadna aplikacja ze ścieżką /console*, spowoduje konflikt ze ścieżką konsoli administracyjnej. W przypadku tej opcji wybierz pozycję Tak.
    2. Pozostaw wartości domyślne pozostałych pól.
    3. Wybierz Dalej.

    Zrzut ekranu witryny Azure Portal przedstawiający klaster Oracle WebLogic Server w okienku równoważenia obciążenia usługi AKS.

  7. Pozostaw wartości domyślne okienka DNS , a następnie wybierz pozycję Dalej , aby przejść do okienka Baza danych .

  8. Pozostaw wartości domyślne okienka Baza danych , wybierz pozycję Dalej , aby przejść do okienka Skalowanie automatyczne, a następnie wykonaj następujące kroki:

    1. Obok pozycji Aprowizowanie zasobów na potrzeby skalowania automatycznego w poziomie? wybierz pozycję Tak.
    2. W obszarze Ustawienia skalowania automatycznego w poziomie obok pozycji Wybierz opcję skalowania automatycznego., wybierz pozycję Eksporter monitora WebLogic (zaawansowane skalowanie automatyczne).
    3. Wybierz pozycję Przejrzyj i utwórz.

    Zrzut ekranu witryny Azure Portal przedstawiający klaster Oracle WebLogic Server w okienku Skalowanie automatyczne w usłudze AKS.

  9. Poczekaj na pomyślne zakończenie ostatniej weryfikacji, a następnie wybierz pozycję Utwórz. Po pewnym czasie powinna zostać wyświetlona strona Wdrażanie , na której jest w toku wdrażanie.

Jeśli podczas ostatecznej weryfikacji wystąpią jakiekolwiek problemy, rozwiąż je i spróbuj ponownie.

Nawiązywanie połączenia z klastrem usługi AKS

Poniższe sekcje wymagają terminalu zainstalowanego kubectl do zarządzania klastrem WLS. Aby zainstalować kubectl lokalnie, użyj polecenia az aks install-cli .

Aby nawiązać połączenie z klastrem usługi AKS, wykonaj następujące czynności:

  1. Otwórz witrynę Azure Portal i przejdź do grupy zasobów aprowizowanej w sekcji Wdrażanie zabezpieczeń WLS w usłudze AKS przy użyciu oferty witryny Azure Marketplace.
  2. Wybierz zasób typu Kubernetes Service z listy zasobów.
  3. Wybierz pozycję Połącz. Zostanie wyświetlone wskazówki dotyczące łączenia klastra usługi AKS.
  4. Wybierz pozycję Interfejs wiersza polecenia platformy Azure i wykonaj kroki, aby nawiązać połączenie z klastrem usługi AKS w terminalu lokalnym.

Pobieranie metryk z obszaru roboczego usługi Azure Monitor

Wykonaj następujące kroki, aby wyświetlić metryki w obszarze roboczym usługi Azure Monitor przy użyciu zapytań języka Prometheus Query Language (PromQL):

  1. W witrynie Azure Portal wyświetl grupę zasobów używaną w sekcji Wdrażanie zabezpieczeń WLS w usłudze AKS przy użyciu oferty witryny Azure Marketplace.

  2. Wybierz zasób typu obszar roboczy usługi Azure Monitor.

  3. W obszarze Zarządzany prometheus wybierz pozycję Prometheus explorer.

  4. Dane wejściowe webapp_config_open_sessions_current_count do wykonywania zapytań dotyczących bieżącego konta otwartych sesji, jak pokazano na poniższym zrzucie ekranu:

    Zrzut ekranu witryny Azure Portal przedstawiający eksploratora Prometheus.

Uwaga

Aby uzyskać dostęp do metryk, możesz użyć następującego polecenia, uwidaczniając eksportera monitorowania WebLogic:

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

Zaczekaj na EXTERNAL-IP przejście z sample-domain1-cluster-1-exporter kolumny w wierszu <pending> na adres IP. Następnie otwórz adres URL http://<exporter-public-ip>:8080/metrics w przeglądarce i zaloguj się przy użyciu poświadczeń określonych podczas wdrażania oferty. W tym miejscu można znaleźć wszystkie dostępne metryki. Możesz wprowadzić dowolny z nich w oknie PromQL, aby wyświetlić je w usłudze Azure Monitor. Na przykład heap_free_percent przedstawia interesujący wykres. Aby obserwować wykorzystanie pamięci w miarę stosowania obciążenia do aplikacji, ustaw opcję Automatyczne odświeżanie i Zakres czasu na najmniejszy możliwy interwał i pozostaw otwartą kartę.

Tworzenie narzędzia skalowania KEDA

Skalatory definiują sposób i czas skalowania wdrożenia przez usługę KEDA. W tym artykule użyto narzędzia Prometheus scaler w celu pobrania metryk rozwiązania Prometheus z obszaru roboczego usługi Azure Monitor.

W tym artykule użyto openSessionsCurrentCount jako wyzwalacza. Reguła dla tej metryki jest opisana w następujący sposób. Gdy średnia liczba otwartych sesji jest większa niż 10, przeskaluj klaster WLS w górę do momentu osiągnięcia maksymalnego rozmiaru repliki. W przeciwnym razie przeprowadź skalowanie klastra WLS w dół do momentu osiągnięcia minimalnego rozmiaru repliki. W poniższej tabeli wymieniono ważne parametry:

Nazwa parametru Wartość
serverAddress Punkt końcowy zapytania obszaru roboczego usługi Azure Monitor.
metricName webapp_config_open_sessions_current_count
query sum(webapp_config_open_sessions_current_count{app="app1"})
threshold 10
minReplicaCount 1
maxReplicaCount Domyślna wartość wynosi 5. Jeśli podczas wdrażania oferty zmodyfikowano maksymalny rozmiar klastra, zastąp wartość maksymalnym rozmiarem klastra.

Ponieważ podczas wdrażania wybrano eksportera monitorowania WebLogic, skalowanie KEDA jest gotowe do wdrożenia. W poniższych krokach pokazano, jak skonfigurować narzędzie skalowania KEDA do użycia z klastrem usługi AKS:

  1. Otwórz witrynę Azure Portal i przejdź do grupy zasobów aprowizowanej w sekcji Wdrażanie zabezpieczeń WLS w usłudze AKS przy użyciu oferty witryny Azure Marketplace.

  2. W okienku nawigacji w sekcji Ustawienia wybierz pozycję Wdrożenia. Zostanie wyświetlona uporządkowana lista wdrożeń w tej grupie zasobów z najnowszą.

  3. Przewiń do najstarszego wpisu na tej liście. Ten wpis odpowiada wdrożeniu rozpoczętym w poprzedniej sekcji. Wybierz najstarsze wdrożenie, którego nazwa zaczyna się od czegoś podobnego do oracle.20210620-wls-on-aks.

  4. Wybierz pozycję Dane wyjściowe. Ta opcja przedstawia listę danych wyjściowych z wdrożenia.

  5. Wartość kedaScalerServerAddress to adres serwera, który zapisuje metryki WLS. Usługa KEDA może uzyskiwać dostęp do metryk i pobierać je z adresu.

  6. Wartość shellCmdtoOutputKedaScalerSample jest base64 ciągiem próbki narzędzia scaler. Skopiuj wartość i uruchom ją w terminalu. Polecenie powinno wyglądać podobnie do następującego przykładu:

    echo -e YXBpVm...XV0aAo= | base64 -d > scaler.yaml
    

    To polecenie tworzy plik scaler.yaml w bieżącym katalogu.

  7. Zmodyfikuj wiersze metric: i query: w pliku scaler.yaml , jak pokazano w poniższym przykładzie:

    metricName: webapp_config_open_sessions_current_count
    query: sum(webapp_config_open_sessions_current_count{app="app1"})
    

    Uwaga

    Podczas wdrażania aplikacji z ofertą jest ona domyślnie nazwana app1 . Aby uzyskać nazwę aplikacji, możesz użyć następujących kroków, aby uzyskać dostęp do konsoli administracyjnej usługi WLS:

    1. Użyj powyższych kroków, aby wyświetlić dane wyjściowe wdrożenia.
    2. Wartość adminConsoleExternalUrl to w pełni kwalifikowany publiczny link widoczny w Internecie do konsoli administracyjnej usługi WLS. Wybierz ikonę kopiowania obok wartości pola, aby skopiować link do schowka.
    3. Wklej wartość w przeglądarce i otwórz konsolę administracyjną usługi WLS.
    4. Zaloguj się przy użyciu konta administratora usługi WLS, które zapisano na bok w sekcji Wdrażanie zabezpieczeń WLS w usłudze AKS przy użyciu oferty witryny Azure Marketplace.
    5. W obszarze Struktura domeny wybierz pozycję Wdrożenia. Znajdziesz aplikację 1 na liście.
    6. Wybierz pozycję app1 , aby dowiedzieć się, że wartość Name dla aplikacji to app1. Użyj app1 jako nazwy aplikacji w zapytaniu.
  8. W razie potrzeby zmodyfikuj maxReplicaCount: wiersz w pliku scaler.yaml , jak pokazano w poniższym przykładzie. Jest to błąd podczas ustawiania tej wartości wyższej niż określona w czasie wdrażania na karcie AKS .

    maxReplicaCount: 10
    
  9. Użyj następującego polecenia, aby utworzyć regułę narzędzia skalowania KEDA, stosując plik scaler.yaml:

    kubectl apply -f scaler.yaml
    

    Pobranie metryk z obszaru roboczego usługi Azure Monitor zajmuje kilka minut. Stan narzędzia scaler można obserwować za pomocą następującego polecenia:

    kubectl get hpa -n sample-domain1-ns -w
    

    Gdy program scaler będzie gotowy do pracy, dane wyjściowe będą wyglądać podobnie do poniższej zawartości. Wartość w kolumnie TARGETS zmienia się z <unknown> na 0.

    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
    

Testowanie skalowania automatycznego

Teraz możesz obserwować możliwości skalowania automatycznego. W tym artykule są otwierane nowe sesje używane curl do uzyskiwania dostępu do aplikacji. Gdy średnia liczba sesji jest większa niż 10, wykonywana jest akcja skalowania w górę. Sesje trwają przez 150 sekund, a liczba otwartych sesji spada wraz z wygaśnięciem sesji. Po upływie średniej liczby sesji jest mniejsza niż 10, wykonywana jest akcja skalowania w dół. Wykonaj następujące kroki, aby spowodować akcje skalowania w górę i skalowania w dół:

  1. Aby uzyskać adres URL aplikacji, wykonaj następujące czynności:

    1. Użyj powyższych kroków, aby wyświetlić dane wyjściowe wdrożenia.
    2. Wartość clusterExternalUrl to w pełni kwalifikowany, publiczny, widoczny w Internecie link do przykładowej aplikacji wdrożonej w usłudze WLS w tym klastrze usługi AKS. Aby skopiować link do schowka, wybierz ikonę kopiowania obok wartości pola.
    3. Adres URL umożliwiający dostęp do pliku testwebapp.war to ${clusterExternalUrl}testwebapp na http://wlsgw202403-wlsaks0314-domain1.eastus.cloudapp.azure.com/testwebapp/przykład .
  2. Uruchom polecenie , curl aby uzyskać dostęp do aplikacji i spowodować nowe sesje. Poniższy przykład otwiera 22 nowe sesje. Sesje wygasły po 150 sekundach. Zastąp wartość WLS_CLUSTER_EXTERNAL_URL twoimi wartościami.

    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
    
  3. W dwóch oddzielnych powłokach użyj następujących poleceń:

    • Użyj następującego polecenia, aby zaobserwować skalowanie:

      kubectl get hpa -n sample-domain1-ns -w
      

      To polecenie generuje dane wyjściowe podobne do następującego przykładu:

      $ 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
      
    • W oddzielnej powłoce użyj następującego polecenia, aby obserwować zasobniki ZLS:

      kubectl get pod -n sample-domain1-ns -w
      

      To polecenie generuje dane wyjściowe podobne do następującego przykładu:

      $ 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
      

Wykres w obszarze roboczym usługi Azure Monitor wygląda podobnie do poniższego zrzutu ekranu:

Zrzut ekranu witryny Azure Portal przedstawiający graf Eksploratora rozwiązania Prometheus.

Czyszczenie zasobów

Aby uniknąć opłat za platformę Azure, należy wyczyścić niepotrzebne zasoby. Gdy klaster nie jest już potrzebny, użyj polecenia az group delete . Następujące polecenia usuwają grupę zasobów, usługę kontenera, rejestr kontenerów i wszystkie powiązane zasoby:

az group delete --name <wls-resource-group-name> --yes --no-wait
az group delete --name <ama-resource-group-name> --yes --no-wait

Następne kroki

Zapoznaj się z następującymi odwołaniami, aby uzyskać więcej opcji tworzenia rozwiązań skalowania automatycznego i uruchamiania zabezpieczeń WLS na platformie Azure: