Tutorial: Memperbarui aplikasi di Azure Kubernetes Service (AKS)

Setelah aplikasi disebarkan di Kubernetes, aplikasi dapat diperbarui dengan menentukan image kontainer atau versi image baru. Pembaruan bertahap sehingga hanya sebagian penyebaran yang diperbarui pada saat yang sama. Pembaruan bertahap ini memungkinkan aplikasi untuk terus berjalan selama pembaruan. Ini juga menyediakan mekanisme rollback jika kegagalan penyebaran terjadi.

Dalam tutorial ini, bagian enam dari tujuh, contoh aplikasi Azure Vote diperbarui. 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

Sebelum Anda mulai

Dalam tutorial sebelumnya, aplikasi dikemas ke dalam gambar kontainer. Gambar ini diunggah ke Azure Container Registry, dan Anda membuat kluster AKS. Aplikasi kemudian disebarkan ke klaster AKS.

Repositori aplikasi juga dikloning yang menyertakan kode sumber aplikasi, dan file Docker Compose yang telah dibuat sebelumnya yang digunakan dalam tutorial ini. Verifikasi bahwa Anda telah membuat klon repo, dan telah mengubah direktori menjadi direktori kloning. Jika Anda belum menyelesaikan langkah-langkah ini, dan ingin mengikuti, mulailah dengan Tutorial 1 - Membuat image kontainer.

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

Memperbarui aplikasi

Mari kita buat perubahan pada aplikasi sampel, lalu perbarui versi yang sudah disebarkan ke klaster AKS Anda. 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 vi:

vi 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. Di vi, gunakan :wq.

Memperbarui image kontainer

Untuk membuat ulang image front-end dan menguji aplikasi yang diperbarui, gunakan docker-compose. Argumen --build digunakan untuk menginstruksikan Docker Compose untuk membuat ulang image 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.

Cuplikan layar memperlihatkan contoh image kontainer yang diperbarui Azure Voting App berjalan secara lokal terbuka di browser web lokal

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, beberapa instans dari pod aplikasi harus berjalan. 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

Sekarang buka browser web ke alamat IP layanan Anda:

Cuplikan layar yang menunjukkan contoh gambar yang diperbarui Aplikasi Azure Voting yang berjalan di kluster AKS yang dibuka di browser web lokal.

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.