Udostępnij za pośrednictwem


(PRZESTARZAŁE) Aktualizowanie aplikacji w rozwiązaniu Kubernetes

Porada

Aby uzyskać zaktualizowaną wersję tego samouczka korzystającego z Azure Kubernetes Service, zobacz Samouczek: aktualizowanie aplikacji w usłudze Azure Kubernetes Service (AKS).

Ostrzeżenie

Usługa Azure Container Service (ACS) stała się przestarzała. Do usługi ACS nie są już dodawane żadne nowe funkcje. Wszystkie interfejsy API, środowisko portalu, polecenia interfejsu wiersza polecenia i dokumentacja są oznaczone jako przestarzałe.

W 2017 r. wprowadziliśmy usługę Azure Kubernetes Service (AKS), aby uprościć wdrażanie i operacje platformy Kubernetes oraz zarządzanie nią. Jeśli używasz orkiestratora platformy Kubernetes, przeprowadź migrację do usługi AKS do 31 stycznia 2020 r. Aby rozpocząć pracę, zapoznaj się z artykułem dotyczącym migracji do usługi Azure Kubernetes Service.

Aby uzyskać więcej informacji, zobacz ogłoszenie o zakończeniu obsługi usługi Azure Container Service w witrynie Azure.com.

Po wdrożeniu aplikacji w usłudze Kubernetes można ją zmodyfikować, określając nowy obraz kontenera lub wersję obrazu. W takiej sytuacji aktualizacja jest przygotowywana tak, aby tylko część była współbieżnie aktualizowana. 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) aktualizowana jest przykładowa aplikacja do głosowania platformy Azure. Zadania do wykonania to na przykład:

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

W kolejnych samouczkach usługa Log Analytics zostanie skonfigurowana do monitorowania klastra usługi Kubernetes.

Zanim rozpoczniesz

W poprzednich samouczkach aplikacja została spakowana w postaci obrazu kontenera, obraz został przekazany do usługi Azure Container Registry i utworzono klaster usługi Kubernetes. Następnie uruchomiono aplikację w klastrze usługi Kubernetes.

Sklonowano również repozytorium aplikacji, w tym kod źródłowy aplikacji i utworzony wcześniej plik narzędzia Docker Compose używany w tym samouczku. Sprawdź, czy został utworzony klon repozytorium oraz czy katalogi zostały zmienione na sklonowany katalog. Zawiera on katalog o nazwie azure-vote i plik o nazwie docker-compose.yml.

Jeśli nie wykonano tych kroków, a chcesz kontynuować pracę, wróć do części Samouczek 1 — tworzenie obrazów kontenera.

Aktualizowanie aplikacji

W tym samouczku wprowadzana jest zmiana aplikacji, a zaktualizowana aplikacja jest wdrażana w klastrze usługi Kubernetes.

Kod źródłowy aplikacji znajduje się wewnątrz katalogu azure-vote. Otwórz plik config_file.cfg w dowolnym edytorze kodu lub tekstu. W tym przykładzie używamy programu vi.

vi azure-vote/azure-vote/config_file.cfg

Zmień wartości elementów VOTE1VALUE i VOTE2VALUE, a następnie zapisz plik.

# 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 uruchomić zaktualizowaną aplikację. Argument --build jest używany w celu poinstruowania narzędzia Docker Compose o konieczności ponownego utworzenia obrazu aplikacji.

docker-compose up --build -d

Testowanie aplikacji w środowisku lokalnym

Przejdź do adresu https://localhost:8080, aby wyświetlić zaktualizowaną aplikację.

Image of Kubernetes cluster on Azure

Tagowanie i wypychanie obrazów

Otaguj obraz azure-vote-front wartością loginServer rejestru kontenerów.

Pobierz nazwę serwera logowania za pomocą 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 element <acrLoginServer> nazwą serwera logowania usługi Azure Container Registry lub nazwą hosta rejestru publicznego. Zwróć również uwagę, że obraz został zaktualizowany do wersji redis-v2.

docker tag azure-vote-front <acrLoginServer>/azure-vote-front:redis-v2

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

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

Wdrażanie zaktualizowanej aplikacji

Aby zapewnić maksymalny czas działania, należy uruchomić wiele wystąpień zasobnika aplikacji. Sprawdź tę konfigurację przy użyciu polecenia kubectl get pod.

kubectl get pod

Dane wyjściowe:

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 obraz azure-vote-front nie został uruchomiony w wielu zasobnikach, skaluj wdrożenie azure-vote-front.

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

Aby zaktualizować aplikację, użyj polecenia kubectl set. Zaktualizuj element <acrLoginServer> przy użyciu nazwy serwera logowania lub nazwy hosta rejestru kontenerów.

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

Aby monitorować wdrożenie, użyj polecenia kubectl get pod. Podczas wdrażania aplikacji działanie zasobników jest przerywane, a następnie są one ponownie tworzone przy użyciu obrazu kontenera.

kubectl get pod

Dane wyjściowe:

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 aktualizacji

Pobierz zewnętrzny adres IP usługi azure-vote-front.

kubectl get service azure-vote-front

Przejdź do adresu IP, aby wyświetlić zaktualizowaną aplikację.

Image of Kubernetes cluster on Azure

Następne kroki

W tym samouczku zaktualizowano aplikację i wydano tę aktualizację do klastra Kubernetes. Wykonano następujące zadania:

  • Zaktualizowano kod aplikacji frontonu
  • Utworzono zaktualizowany obraz kontenera
  • Wypchnięto obraz kontenera do usługi Azure Container Registry
  • Wdrożono zaktualizowaną aplikację

Przejdź do następnego samouczka, aby dowiedzieć się, jak monitorować usługę Kubernetes przy użyciu usługi Log Analytics.