Udostępnij za pośrednictwem


Samouczek: aktualizowanie aplikacji w usłudze AKS włączonej przez usługę Azure Arc

Dotyczy: usługa AKS w usłudze Azure Stack HCI 22H2, AKS w systemie Windows Server

Po wdrożeniu aplikacji na platformie Kubernetes przy użyciu usługi AKS włączonej przez usługę Arc można ją zaktualizować, określając nowy obraz kontenera lub wersję obrazu. Należy przygotować aktualizację tak, aby tylko część wdrożenia została zaktualizowana w tym samym czasie. Ta aktualizacja etapowa umożliwia kontynuowanie działania podczas aktualizacji aplikacji. Udostępnia ona również mechanizm wycofywania w przypadku niepowodzenia wdrożenia.

W tym samouczku, część szósta z siedmiu, opisano sposób aktualizowania przykładowej aplikacji Azure Vote. Poznasz następujące czynności:

  • Aktualizowanie kodu aplikacji frontonu
  • Tworzenie zaktualizowanego obrazu kontenera
  • Wypychanie obrazu kontenera do usługi Azure Container Registry
  • Wdrażanie zaktualizowanego obrazu kontenera

Zanim rozpoczniesz

W poprzednich samouczkach przedstawiono sposób wykonywania następujących kroków:

  • Spakuj aplikację do obrazu kontenera i przekaż obraz do usługi Azure Container Registry.
  • Utwórz klaster Kubernetes na platformie Azure Local i wdróż aplikację w klastrze.
  • Sklonuj repozytorium aplikacji zawierające kod źródłowy aplikacji i wstępnie utworzony plik Docker Compose, którego można użyć w tym samouczku.

Sprawdź, czy utworzono klon repozytorium i zmieniono katalogi na sklonowany katalog. Jeśli te kroki nie zostały wykonane, zacznij od samouczka 1 — tworzenie obrazów kontenerów.

Ten samouczek wymaga uruchomienia interfejsu wiersza polecenia platformy Azure w wersji 2.0.53 lub nowszej. Uruchom polecenie az --version, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

Aktualizowanie aplikacji

W tej sekcji opisano, jak wprowadzić zmianę w przykładowej aplikacji, a następnie zaktualizować wersję już wdrożoną w klastrze usługi AKS. Upewnij się, że jesteś w sklonowanym katalogu azure-voting-app-redis. Kod źródłowy aplikacji przykładowej znajduje się wówczas w katalogu azure-vote. Otwórz plik config_file.cfg za pomocą edytora, takiego jak Notatnik:

notepad azure-vote/azure-vote/config_file.cfg

Zmień wartości dla VOTE1VALUE i VOTE2VALUE na różne wartości, takie jak kolory. Poniższy przykład przedstawia zaktualizowane wartości:

# UI Configurations
TITLE = 'Azure Voting App'
VOTE1VALUE = 'Blue'
VOTE2VALUE = 'Purple'
SHOWHOST = 'false'

Zapisz i zamknij plik.

Aktualizowanie obrazu kontenera

Użyj narzędzia docker-compose, aby ponownie utworzyć obraz frontonu i przetestować zaktualizowaną aplikację. Argument --build służy do ponownego tworzenia obrazu aplikacji:

docker-compose up --build -d

Testowanie aplikacji w środowisku lokalnym

Aby sprawdzić, czy w zaktualizowanym obrazie kontenera wyświetlane są wprowadzone zmiany, otwórz stronę http://localhost:8080 w lokalnej przeglądarce internetowej.

Zrzut ekranu przedstawiający przykład zaktualizowanego obrazu kontenera aplikacja Do głosowania platformy Azure uruchomiona lokalnie w lokalnej przeglądarce internetowej

Zaktualizowane wartości podane w pliku config_file.cfg są wyświetlane w uruchomionej aplikacji.

Tagowanie i wypychanie obrazu

Aby poprawnie użyć zaktualizowanego obrazu, oznacz obraz azure-vote-front nazwą serwera logowania wystąpienia usługi Azure Container Registry. Nazwę serwera logowania uzyskaj przy użyciu polecenia az acr list:

az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table

Użyj polecenia docker tag w celu otagowania obrazu. Zastąp <acrLoginServer> ciąg nazwą serwera logowania rejestru kontenerów lub nazwą hosta rejestru publicznego, a następnie zaktualizuj wersję obrazu do wersji 2 w następujący sposób:

docker tag mcr.microsoft.com/azuredocs/azure-vote-front:v1 <acrLoginServer>/azure-vote-front:v2

Następnie użyj polecenia docker push w celu przekazania obrazu do rejestru. Zastąp element <acrLoginServer> nazwą serwera logowania usługi Azure Container Registry.

Uwaga

Jeśli wystąpią problemy z wypychaniem do rejestru kontenerów, upewnij się, że nadal się zalogowano. Uruchom polecenie az acr login przy użyciu nazwy usługi Azure Container Registry utworzonej w kroku Tworzenie usługi Azure Container Registry. Na przykład az acr login --name <azure container registry name>.

docker push <acrLoginServer>/azure-vote-front:v2

Wdrażanie zaktualizowanej aplikacji

Aby zapewnić maksymalny czas pracy, należy uruchomić wiele wystąpień zasobnika aplikacji. Sprawdź liczbę uruchomionych wystąpień frontonu, używając polecenia kubectl get pods:

$ kubectl get pods

NAME                               READY     STATUS    RESTARTS   AGE
azure-vote-back-217588096-5w632    1/1       Running   0          10m
azure-vote-front-233282510-b5pkz   1/1       Running   0          10m
azure-vote-front-233282510-dhrtr   1/1       Running   0          10m
azure-vote-front-233282510-pqbfk   1/1       Running   0          10m

Jeśli nie masz wielu zasobników frontonu, przeskaluj wdrożenie azure-vote-front w następujący sposób:

kubectl scale --replicas=3 deployment/azure-vote-front

Aby zaktualizować aplikację, użyj polecenia kubectl set. Zaktualizuj wartość <acrLoginServer> nazwą serwera logowania lub nazwą hosta rejestru kontenerów, a następnie określ wersję aplikacji v2:

kubectl set image deployment azure-vote-front azure-vote-front=<acrLoginServer>/azure-vote-front:v2

Aby monitorować wdrożenie, użyj polecenia kubectl get pod. Po wdrożeniu zaktualizowanej aplikacji zasobniki zostaną zakończone i ponownie utworzone przy użyciu nowego obrazu kontenera:

kubectl get pods

Poniższe przykładowe dane wyjściowe przedstawiają zasobniki kończące swoje działanie oraz nowe wystąpienia uruchamiane w miarę postępów wdrażania:

$ kubectl get pods

NAME                               READY     STATUS        RESTARTS   AGE
azure-vote-back-2978095810-gq9g0   1/1       Running       0          5m
azure-vote-front-1297194256-tpjlg  1/1       Running       0          1m
azure-vote-front-1297194256-tptnx  1/1       Running       0          5m
azure-vote-front-1297194256-zktw9  1/1       Terminating   0          1m

Testowanie zaktualizowanej aplikacji

Aby wyświetlić zaktualizowaną aplikację, najpierw uzyskaj zewnętrzny adres IP usługi azure-vote-front:

kubectl get service azure-vote-front

Następnie otwórz przeglądarkę internetową pod adresem IP usługi:

Zrzut ekranu przedstawiający przykład zaktualizowanej aplikacji do głosowania platformy Azure uruchomionej w klastrze Kubernetes otwartym w lokalnej przeglądarce internetowej.

Następne kroki

W tym samouczku zaktualizowano aplikację i wdrożono tę aktualizację w klastrze Kubernetes. W tym samouczku omówiono:

  • Aktualizowanie kodu aplikacji frontonu
  • Tworzenie zaktualizowanego obrazu kontenera
  • Wypychanie obrazu kontenera do usługi Azure Container Registry
  • Wdrażanie zaktualizowanego obrazu kontenera

Przejdź do następnego samouczka, aby dowiedzieć się, jak uaktualnić klaster do nowej wersji rozwiązania Kubernetes.