Öğretici: Azure Kubernetes Hizmeti’nde (AKS) bir uygulamayı güncelleştirme

Bir uygulama Kubernetes’te dağıtıldıktan sonra, yeni bir kapsayıcı görüntüsü veya görüntü sürümü belirtilerek güncelleştirilebilir. Dağıtımın yalnızca bir kısmının aynı anda güncelleştirilmesi için bir güncelleştirme hazırlanır. 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.

Bu yedi parçalı öğreticinin altıncı bölümünde, örnek Azure Vote uygulaması güncelleştirilir. Aşağıdakileri nasıl yapacağınızı öğ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 bir uygulama bir kapsayıcı görüntüsüne paketlenmişti. Bu görüntü Azure Container Registry yüklendi ve bir AKS kümesi oluşturdunuz. Uygulama daha sonra AKS kümesine dağıtıldı.

Bu öğreticide ayrıca uygulama kaynak kodunu içeren bir uygulama deposu da kopyalandı ve önceden oluşturulmuş bir Docker Compose dosyası kullanıldı. Deponun bir kopyasını oluşturduğunuzu ve dizinleri kopyalanan dizine değiştirdiğinizden emin olun. Bu adımları tamamlamadıysanız ve takip etmek istiyorsanı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

Şimdi örnek uygulamada bir değişiklik yapalım ve AKS kümenize dağıtılmış olan sürümü güncelleştirelim. 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ı vi gibi bir düzenleyiciyle açın:

vi 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. içinde vikullanın :wq.

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 üzere Docker Compose'a komut vermek 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.

Yerel bir web tarayıcısında yerel olarak açılan güncelleştirilmiş kapsayıcı görüntüsü Azure Voting Uygulaması örneğini gösteren ekran görüntüsü

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öndermeyle ilgili sorunlarla karşılaşıyorsanı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ğinin çalışıyor olması 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

Şimdi hizmetinizin IP adresine bir web tarayıcısı açın:

Yerel web tarayıcısında açılan aks kümesinde çalışan güncelleştirilmiş Azure Voting Uygulaması görüntüsünü gösteren ekran görüntüsü.

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.