Tutorial: Memperbarui aplikasi di Azure Kubernetes Service di Azure Stack HCI dan Windows Server

Setelah menyebarkan aplikasi di Kubernetes di Azure Kubernetes Service (AKS) di Azure Stack HCI dan Windows Server, Anda dapat memperbaruinya dengan menentukan citra kontainer atau versi citra baru. Anda harus melakukan pembaruan sehingga hanya sebagian penyebaran yang diperbarui di waktu yang sama. Pembaruan bertahap ini memungkinkan aplikasi untuk terus berjalan selama pembaruan. Ini juga menyediakan mekanisme rollback jika kegagalan penyebaran terjadi.

Tutorial ini, bagian enam dari tujuh, menjelaskan cara memperbarui sampel aplikasi Azure Vote. Anda akan mempelajari cara untuk:

  • Memperbarui kode aplikasi front-end
  • Membuat image kontainer yang diperbarui
  • Mendorong image kontainer ke Azure Container Registry
  • Menyebarkan image kontainer yang diperbarui

Sebelum Anda mulai

Dalam tutorial sebelumnya, Anda mempelajari cara:

  • Mengemas aplikasi ke dalam citra kontainer dan mengunggah citra ke Azure Container Registry.
  • Membuat kluster AKS di Azure Stack HCI dan menyebarkan aplikasi ke kluster.
  • Melakukan klon repositori aplikasi yang mencakup kode sumber aplikasi dan file Docker Compose yang telah dibuat sebelumnya yang dapat digunakan dalam tutorial ini.

Verifikasi bahwa Anda telah membuat klon repo, dan telah mengubah direktori menjadi direktori kloning. Jika Anda belum menyelesaikan langkah tersebut, mulai dengan Tutorial 1 - Membuat citra kontainer.

Tutorial ini mengharuskan Anda menjalankan Azure CLI versi 2.0.53 atau versi yang lebih baru. Jalankan az --version untuk menemukan versinya. Jika Anda perlu menginstal atau meningkatkan, lihat Menginstal Azure CLI.

Memperbarui aplikasi

Bagian ini menjelaskan cara membuat perubahan pada aplikasi contoh, lalu memperbarui versi yang sudah disebarkan ke kluster AKS di Azure Stack HCI dan Windows Server. Pastikan Anda berada di direktori azure-voting-app-redis yang dikloning. Contoh kode sumber aplikasi kemudian dapat ditemukan di dalam direktori azure-vote. Buka file config_file.cfg dengan editor, seperti notepad:

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

Ubah nilai untuk VOTE1VALUE dan VOTE2VALUE ke nilai yang berbeda, seperti warna. Contoh berikut ini memperlihatkan nilai yang diperbarui:

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

Simpan dan tutup file.

Memperbarui image kontainer

Untuk membuat ulang image front-end dan menguji aplikasi yang diperbarui, gunakan docker-compose. Argumen --build digunakan untuk S untuk membuat ulang citra aplikasi:

docker-compose up --build -d

Menguji aplikasi secara lokal

Untuk memverifikasi bahwa image kontainer yang diperbarui menunjukkan perubahan Anda, buka browser web lokal ke http://localhost:8080.

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

Nilai yang diperbarui tersedia di file config_file.cfg ditampilkan di aplikasi Anda yang sedang berjalan.

Menandai dan mendorong image

Untuk menggunakan gambar yang diperbarui dengan benar, tandai image azure-vote-front dengan nama server login dari registri ACR Anda. Dapatkan nama server login dengan perintah daftar az acr:

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

Gunakan tag docker untuk menandai image. Ganti <acrLoginServer> dengan nama server login ACR atau nama host registri publik Anda, dan perbarui versi image ke :v2 sebagai berikut:

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

Sekarang gunakan docker push untuk mengunggah image ke registri Anda. Ganti <acrLoginServer> dengan nama server login ACR Anda.

Catatan

Jika Anda mengalami masalah saat mendorong ke registri ACR Anda, pastikan Anda masih login. Jalankan perintah login az acr menggunakan nama Azure Container Registry Anda yang Anda buat di langkah Membuat Azure Container Registry. Contohnya:az acr login --name <azure container registry name>

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

Sebarkan aplikasi yang diperbarui

Untuk memberikan waktu aktif maksimum, Anda harus menjalankan beberapa instans dari pod aplikasi. Verifikasi jumlah instans front-end yang berjalan dengan perintah kubectl get pods:

$ 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

Jika Anda tidak memiliki beberapa pod front-end, skalakan penyebaran azure-vote-front sebagai berikut:

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

Untuk memperbarui aplikasi, gunakan perintah kubectl set. Perbarui <acrLoginServer> dengan server login atau nama host registri kontainer Anda, dan tentukan versi aplikasi v2:

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

Untuk memantau penyebaran, gunakan perintah kubectl get pod. Saat aplikasi yang diperbarui disebarkan, pod-pod Anda dihentikan dan dibuat ulang dengan image kontainer baru.

kubectl get pods

Output contoh berikut menunjukkan pengakhiran pod-pod dan instans baru yang berjalan saat penyebaran berlangsung:

$ 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

Uji aplikasi yang diperbarui

Untuk melihat aplikasi pembaruan, pertama-tama dapatkan alamat IP eksternal layanan azure-vote-front:

kubectl get service azure-vote-front

Berikutnya, buka browser web ke alamat IP layanan Anda:

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

Langkah berikutnya

Dalam tutorial ini, Anda memperbarui aplikasi dan meluncurkan pembaruan ini ke klaster AKS Anda. Anda mempelajari cara untuk:

  • Memperbarui kode aplikasi front-end
  • Membuat image kontainer yang diperbarui
  • Mendorong image kontainer ke Azure Container Registry
  • Menyebarkan image kontainer yang diperbarui

Lanjutkan ke tutorial berikutnya untuk mempelajari cara meningkatkan klaster AKS ke versi baru Kubernetes.