(KULLANIMSIZ) Kubernetes'te bir uygulamayı güncelleştirme

İpucu

Azure Kubernetes Service kullanan bu öğreticinin güncelleştirilmiş sürümü için bkz. Öğretici: Azure Kubernetes Service'de (AKS) bir uygulamayı güncelleştirme.

Uyarı

Azure Container Service (ACS) kullanım dışı bırakılıyor. ACS'ye yeni özellik veya işlevsellik eklenmiyor. Tüm API'ler, portal deneyimi, CLI komutları ve belgeleri kullanım dışı olarak işaretlenir.

2017'de Kubernetes yönetimi, dağıtımı ve işlemlerini basitleştirmek için Azure Kubernetes Service (AKS) kullanıma sunulmuştur. Kubernetes düzenleyicisini kullanıyorsanız lütfen 31 Ocak 2020'ye kadar AKS'ye geçin. Başlamak için bkz. Azure Kubernetes Service geçiş.

Daha fazla bilgi için bkz. Azure.com'da Azure Container Service kullanımdan kaldırma duyurusu.

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. Bu yapıldığında, güncelleştirme, dağıtımın yalnızca bir kısmı eşzamanlı olarak güncelleştirilecek şekilde hazırlanılı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. Tamamladığınız görevler şunları içerir:

  • Ön uç uygulaması 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

Sonraki öğreticilerde Kubernetes kümesini izlemek için Log Analytics yapılandırılır.

Başlamadan önce

Önceki öğreticilerde, bir uygulama bir kapsayıcı görüntüsüne paketlendi, görüntü Azure Container Registry’ye yüklendi ve bir Kubernetes kümesi oluşturuldu. Ardından uygulama Kubernetes kümesinde çalıştırı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 kopyalanmış dizine değiştirdiğinizi doğrulayın. İçeride azure-vote adlı bir dizin ve docker-compose.yml adlı bir dosya bulunuyor.

Bu adımları tamamlamadıysanız ve takip etmek istiyorsanız, Öğretici 1 – Kapsayıcı görüntüleri oluşturma konusuna dönün.

Uygulamayı güncelleştirme

Bu öğreticide, uygulamada bir değişiklik yapıldı ve güncelleştirilmiş uygulama Kubernetes kümesine dağıtıldı.

Uygulama kaynak kodu azure-vote dizininde bulunabilir. config_file.cfg dosyasını herhangi bir kod ya da metin düzenleyici ile açın. Bu örnekte vi kullanıldı.

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

VOTE1VALUE ile VOTE2VALUE değerlerini değiştirin ve sonra dosyayı kaydedin.

# 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 için docker-compose’u kullanın ve güncelleştirilmiş uygulamayı çalıştırı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ş uygulamayı görüntülemek için https://localhost:8080 adresine göz atın.

Image of Kubernetes cluster on Azure

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

azure-vote-front görüntüsünü, kapsayıcı kayıt defterinin loginServer’ı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. <acrLoginServer> değerini, Azure Container Registry oturum açma sunucu adınız veya genel kayıt defteri ana bilgisayar adınız ile değiştirin. Ayrıca görüntü sürümünün redis-v2 değerine güncelleştirildiğine dikkat edin.

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

Görüntüyü kayıt defterinize yüklemek için docker push’u kullanın. <acrLoginServer> değerini, Azure Container Registry oturum açma sunucu adınız ile değiştirin.

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

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

En uzun çalışma süresini sağlamak için uygulama podunun birden çok örneğinin çalıştırılması gerekir. Bu yapılandırmayı kubectl get pod komutu ile doğrulayın.

kubectl get pod

Çıkış:

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

azure-vote-front görüntüsünü çalıştıran birden çok podunuz yoksa, azure-vote-front dağıtımını ö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.

kubectl set image deployment azure-vote-front azure-vote-front=<acrLoginServer>/azure-vote-front:redis-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 pod

Çıkış:

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

azure-vote-front hizmetinin dış IP adresini alın.

kubectl get service azure-vote-front

Güncelleştirilmiş uygulamayı görüntülemek için IP adresine göz atın.

Image of Kubernetes cluster on Azure

Sonraki adımlar

Bu öğreticide, bir uygulamayı güncelleştirdiniz ve bu güncelleştirmeyi bir Kubernetes kümesine sundunuz. Şu görevler tamamlandı:

  • Ön uç uygulaması kodu güncelleştirildi
  • Güncelleştirilmiş kapsayıcı görüntüsü oluşturuldu
  • Kapsayıcı görüntüsü Azure Container Registry’ye gönderildi
  • Güncelleştirilmiş uygulama dağıtıldı

Log Analytics ile Kubernetes’in nasıl izlenileceği hakkında bilgi edinmek için sonraki öğreticiye ilerleyin.