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.
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:
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.