Öğ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. Bir güncelleştirme, dağıtımın yalnızca bir kısmının aynı anda güncelleştirilmesi için 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 paketlendi. 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ğunuzdan ve dizinleri kopyalanmış dizine değiştirmiş olduğunuzdan emin olun. Bu adımları tamamlamadıysanız ve takip etmek istiyorsanız, öğretici 1 – kapsayıcı görüntüleri oluşturmaile başlayın.
Bu öğreticide, Azure CLı sürüm 2.0.53 veya üstünü çalıştırıyor olmanız gerekir. 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. Kopyalanmış Azure-oylama-App-redsıs dizininde olduğunuzdan emin olun. Örnek uygulama kaynak kodu daha sonra Azure-oy dizini içinde 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 örnek güncelleştirilmiş değerleri göstermektedir:
# UI Configurations
TITLE = 'Azure Voting App'
VOTE1VALUE = 'Blue'
VOTE2VALUE = 'Purple'
SHOWHOST = 'false'
Dosyayı kaydedin ve kapatın. İçinde vi , kullanı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.
Config_file. cfg dosyasında belirtilen 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önderme sorunlarıyla karşılaşırsanız, hala oturum açtığınızdan 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 Pod 'un birden fazla örneği çalışıyor olmalıdır. 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ç potıd yoksa, Azure-oy öndağıtımını aşağıdaki şekilde ö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:
Sonraki adımlar
Bu öğreticide, bir uygulamayı güncelleştirmiş ve bu güncelleştirmeyi AKS kümenize toplamıştır. Ş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.