Tutorial - Menyebarkan aplikasi ke Azure Kubernetes Service (AKS)
Kubernetes menyediakan platform yang didistribusikan untuk aplikasi berkontainer. Anda membangun dan menyebarkan aplikasi dan layanan Anda sendiri ke dalam kluster Kubernetes dan membiarkan kluster mengelola ketersediaan dan konektivitas.
Dalam tutorial ini, bagian empat dari tujuh, Anda menyebarkan aplikasi sampel ke dalam kluster Kubernetes. Anda akan mempelajari cara untuk:
- Perbarui file manifes Kubernetes.
- Jalankan aplikasi di Kubernetes.
- Menguji aplikasi.
Tip
Dengan AKS, Anda dapat menggunakan pendekatan berikut untuk manajemen konfigurasi:
GitOps: Memungkinkan deklarasi status kluster Anda untuk diterapkan secara otomatis ke kluster. Untuk mempelajari cara menggunakan GitOps untuk menyebarkan aplikasi dengan kluster AKS, lihat prasyarat untuk kluster Azure Kubernetes Service di tutorial GitOps dengan Flux v2 .
DevOps: Memungkinkan Anda untuk membangun, menguji, dan menyebarkan dengan integrasi berkelanjutan (CI) dan pengiriman berkelanjutan (CD). Untuk melihat contoh cara menggunakan DevOps untuk menyebarkan aplikasi dengan kluster AKS, lihat Membangun dan menyebarkan ke AKS dengan Azure Pipelines atau GitHub Actions untuk disebarkan ke Kubernetes.
Sebelum Anda mulai
Dalam tutorial sebelumnya, Anda mengemas aplikasi ke dalam gambar kontainer, mengunggah gambar ke Azure Container Registry, dan membuat kluster Kubernetes. Untuk menyelesaikan tutorial ini, Anda memerlukan file manifes Kubernetes yang telah aks-store-quickstart.yaml
dibuat sebelumnya. File ini diunduh dalam kode sumber aplikasi dari Tutorial 1 - Siapkan aplikasi untuk AKS.
Tutorial ini membutuhkan Azure CLI versi 2.0.53 atau versi yang lebih baru. Periksa versi Anda dengan az --version
. Untuk memasang atau meningkatkan, lihat Pasang Azure CLI.
Memperbarui file manifes
Dalam tutorial ini, instans Azure Container Registry (ACR) Anda menyimpan gambar kontainer untuk aplikasi sampel. Untuk menyebarkan aplikasi, Anda harus memperbarui nama gambar dalam file manifes Kubernetes untuk menyertakan nama server login ACR Anda.
Dapatkan alamat server masuk Anda menggunakan
az acr list
perintah dan kueri untuk server masuk Anda.az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table
Pastikan Anda berada di direktori aks-store-demo kloning, lalu buka
aks-store-quickstart.yaml
file manifes dengan editor teks.image
Perbarui properti untuk kontainer dengan mengganti ghcr.io/azure-samples dengan nama server login ACR Anda.containers: ... - name: order-service image: <acrName>.azurecr.io/aks-store-demo/order-service:latest ... - name: product-service image: <acrName>.azurecr.io/aks-store-demo/product-service:latest ... - name: store-front image: <acrName>.azurecr.io/aks-store-demo/store-front:latest ...
Simpan dan tutup file.
Jalankan aplikasi
Sebarkan aplikasi menggunakan
kubectl apply
perintah , yang mengurai file manifes dan membuat objek Kubernetes yang ditentukan.kubectl apply -f aks-store-quickstart.yaml
Output contoh berikut menunjukkan sumber daya yang berhasil dibuat di kluster AKS:
statefulset.apps/rabbitmq created configmap/rabbitmq-enabled-plugins created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created
Periksa apakah penyebaran berhasil dengan melihat pod dengan
kubectl get pods
perintah .kubectl get pods
Uji aplikasi
Ketika aplikasi berjalan, layanan Kubernetes mengekspos front end aplikasi ke internet. Diperlukan beberapa menit untuk menyelesaikan proses ini.
Baris Perintah
Pantau kemajuan menggunakan perintah
kubectl get service
dengan argumen--watch
.kubectl get service store-front --watch
Awalnya,
EXTERNAL-IP
untukstore-front
layanan menunjukkan sebagai<pending>
:store-front LoadBalancer 10.0.34.242 <pending> 80:30676/TCP 5s
EXTERNAL-IP
Saat alamat berubah dari<pending>
ke alamat IP publik, gunakanCTRL-C
untuk menghentikankubectl
proses tontonan.Output contoh berikut menunjukkan alamat IP publik yang valid yang ditetapkan ke layanan:
store-front LoadBalancer 10.0.34.242 52.179.23.131 80:30676/TCP 67s
Lihat aplikasi yang sedang beraksi dengan membuka browser web dan menavigasi ke alamat IP eksternal layanan Anda:
http://<external-ip>
.
Jika aplikasi tidak dimuat, mungkin masalah otorisasi dengan registri gambar Anda. Untuk melihat status kontainer Anda, gunakan perintah kubectl get pods
. Jika Anda tidak dapat menarik gambar kontainer, lihat Mengautentikasi dengan Azure Container Registry dari Azure Kubernetes Service.
Portal Azure
Navigasi ke portal Azure untuk menemukan informasi penyebaran Anda.
Navigasi ke sumber daya kluster AKS Anda.
Dari menu layanan, di bawah Sumber Daya Kubernetes, pilih Layanan dan ingress.
Salin IP Eksternal yang diperlihatkan di kolom untuk
store-front
layanan.Tempelkan IP ke browser Anda untuk mengunjungi halaman toko Anda.
Membersihkan sumber daya
Karena Anda memvalidasi fungsionalitas aplikasi, Anda sekarang dapat menghapus kluster dari aplikasi. Kami akan menyebarkan aplikasi lagi di tutorial berikutnya.
Hentikan dan hapus instans kontainer dan sumber daya menggunakan
kubectl delete
perintah .kubectl delete -f aks-store-quickstart.yaml
Periksa apakah semua pod aplikasi telah dihapus menggunakan
kubectl get pods
perintah .kubectl get pods
Langkah berikutnya
Dalam tutorial ini, Anda menyebarkan contoh aplikasi Azure ke kluster Kubernetes di AKS. Anda mempelajari cara untuk:
- Perbarui file manifes Kubernetes.
- Jalankan aplikasi di Kubernetes.
- Menguji aplikasi.
Dalam tutorial berikutnya, Anda mempelajari cara menggunakan layanan PaaS untuk beban kerja stateful di Kubernetes.
Azure Kubernetes Service