Öğretici: Azure Stack HCI ve Windows Server'da Azure Kubernetes Service bir uygulamayı güncelleştirme

Azure Stack HCI ve Windows Server üzerindeki Azure Kubernetes Service (AKS) içindeki Kubernetes'te bir uygulama dağıttığınızda, yeni bir kapsayıcı görüntüsü veya görüntü sürümü belirterek uygulamayı güncelleştirebilirsiniz. Dağıtımın yalnızca bir kısmının aynı anda güncelleştirilmesi için bir güncelleştirme hazırlamanız gerekir. Hazırlanan bu güncelleştirme, uygulamanın güncelleştirme sırasında çalışmaya devam etmesini sağlar. Ayrıca bir dağıtım hatası oluşursa, bir geri alma mekanizması sağlar.

Yedinin altıncı bölümü olan bu öğreticide örnek Azure Vote uygulamasının nasıl güncelleştirildiği açıklanır. Şunları öğrenirsiniz:

  • Ön uç uygulama kodunu güncelleştirme
  • Güncelleştirilmiş kapsayıcı görüntüsü oluşturma
  • Kapsayıcı görüntüsünü Azure Container Registry’ye gönderme
  • Güncelleştirilmiş kapsayıcı görüntüsünü dağıtma

Başlamadan önce

Önceki öğreticilerde şunların nasıl yapıldığını öğrendinsiniz:

  • Bir uygulamayı kapsayıcı görüntüsüne paketleyin ve görüntüyü Azure Container Registry'a yükleyin.
  • Azure Stack HCI kümesinde bir AKS oluşturun ve uygulamayı kümeye dağıtın.
  • Uygulama kaynak kodunu ve bu öğreticide kullanabileceğiniz önceden oluşturulmuş bir Docker Compose dosyasını içeren bir uygulama deposunu kopyalayın.

Deponun bir kopyasını oluşturduğunuzu ve dizinleri kopyalanan dizin olarak değiştirdiğinizden emin olun. Bu adımları tamamlamadıysanız Öğretici 1 - Kapsayıcı görüntüleri oluşturma ile başlayın.

Bu öğretici, Azure CLI 2.0.53 veya sonraki bir sürümünü çalıştırmanızı gerektirir. Sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.

Uygulamayı güncelleştirme

Bu bölümde, örnek uygulamada nasıl değişiklik yapabileceğiniz ve ardından Azure Stack HCI ve Windows Server kümesinde AKS'nize dağıtılmış olan sürümün nasıl güncelleştirildiği açıklanır. Kopyalanan azure-voting-app-redis dizininde olduğunuzdan emin olun. Örnek uygulama kaynak kodu daha sonra azure-vote dizininde bulunabilir. config_file.cfg dosyasını notepad gibi bir düzenleyiciyle açın:

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

VOTE1VALUE ve VOTE2VALUE değerlerini renkler gibi farklı değerlerle değiştirin. Aşağıdaki örnekte güncelleştirilmiş değerler gösterilmektedir:

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

Dosyayı kaydedin ve kapatın.

Kapsayıcı görüntüsünü güncelleştirme

Ön uç görüntüsünü yeniden oluşturmak ve güncelleştirilen uygulamayı test etmek için docker-compose komutunu kullanın. --build bağımsız değişkeni, uygulama görüntüsünü yeniden oluşturmak için S için kullanılır:

docker-compose up --build -d

Uygulamayı yerel olarak test etme

Güncelleştirilmiş kapsayıcı görüntüsünde yaptığınız değişikliklerin göründüğünü doğrulamak için yerel web tarayıcısında http://localhost:8080 adresine gidin.

Screenshot showing an example of the updated container image Azure Voting App running locally opened in a local web browser

config_file.cfg dosyasında sağlanan güncelleştirilmiş değerler çalışan uygulamanızda görüntülenir.

Görüntüyü etiketleme ve gönderme

Güncelleştirilen görüntüyü doğru şekilde kullanmak için azure-vote-front görüntüsünü ACR kayıt defterinizin oturum açma sunucusunun adıyla etiketleyin. az acr list komutuyla oturum açma sunucusu adını alın:

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

Görüntüyü etiketlemek için docker tag’i kullanın. Aşağıda gösterilen şekilde <acrLoginServer> yerine ACR oturum açma sunucunuzun adını veya genel kayıt defteri ana bilgisayar adını yazın ve görüntü sürümünü :v2 olarak güncelleştirin:

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

Şimdi görüntüyü kayıt defterinize yüklemek için docker push komutunu kullanın. <acrLoginServer> yerine ACR oturum açma sunucunuzun adını yazın.

Not

ACR kayıt defterinize gönderirken sorunlarla karşılaşırsanız oturumunuzun açık olduğundan emin olun. Azure Container Registry oluşturma adımında oluşturduğunuz Azure Container Registry adını kullanarak az acr login komutunu çalıştırın. Örneğin, az acr login --name <azure container registry name>.

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

Güncelleştirilmiş uygulamayı dağıtma

Maksimum çalışma süresi sağlamak için uygulama podunun birden çok örneğini çalıştırmanız gerekir. kubectl get pods komutunu kullanarak çalışan ön uç görüntülerinin sayısını doğrulayın:

$ 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

Birden çok ön uç pod'larınız yoksa azure-vote-front dağıtımını aşağıdaki gibi ölçeklendirin:

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

Uygulamayı güncelleştirmek için kubectl set komutunu kullanın. <acrLoginServer> öğesini, kapsayıcı kayıt defterinizin oturum açma sunucusu veya ana bilgisayar adıyla güncelleştirin ve uygulama sürümünü v2 olarak belirtin:

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

Dağıtımı izlemek için kubectl get pod komutunu kullanın. Güncelleştirilmiş uygulama dağıtıldığında, podlarınız sonlandırılır ve yeni kapsayıcı görüntüsüyle yeniden oluşturulur.

kubectl get pods

Aşağıdaki örnek çıktı, dağıtımın ilerlemesi sırasında sonlandırılan podları ve çalışan yeni örnekleri göstermektedir:

$ 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

Güncelleştirilmiş uygulamayı test etme

Güncelleştirme uygulamasını görüntülemek için öncelikle azure-vote-front hizmetinin dış IP'sini alın:

kubectl get service azure-vote-front

Ardından, hizmetinizin IP adresine bir web tarayıcısı açın:

Screenshot showing an example of the updated image Azure Voting App running in an AKS cluster opened in a local web browser.

Sonraki adımlar

Bu öğreticide, bir uygulamayı güncelleştirmiş ve bu güncelleştirmeyi AKS kümenize dağıtmıştınız. Şunları öğrendiniz:

  • Ön uç uygulama kodunu güncelleştirme
  • Güncelleştirilmiş kapsayıcı görüntüsü oluşturma
  • Kapsayıcı görüntüsünü Azure Container Registry’ye gönderme
  • Güncelleştirilmiş kapsayıcı görüntüsünü dağıtma

Bir AKS kümesini yeni bir Kubernetes sürümüne yükseltmeyi öğrenmek için bir sonraki öğreticiye geçin.