Mulai Cepat: Mengembangkan di Azure Kubernetes Service (AKS) dengan Helm
Helm adalah alat pengemasan sumber terbuka yang membantu Anda memasang dan mengelola siklus hidup aplikasi Kubernetes. Mirip dengan manajer paket Linux seperti APT dan Yum, Helm mengelola bagan Kubernetes, yang merupakan paket sumber daya Kubernetes yang telah dikonfigurasi sebelumnya.
Dalam mulai cepat ini, Anda menggunakan Helm untuk mengemas dan menjalankan aplikasi di AKS. Untuk informasi tentang menginstal aplikasi yang ada menggunakan Helm, lihat Menginstal aplikasi yang ada dengan Helm di AKS.
Prasyarat
- Langganan Azure. Jika Anda tidak memiliki langganan Azure, Anda dapat membuat akun gratis.
- Azure CLI atau Azure PowerShell diinstal.
- Helm v3 terpasang.
Membuat Azure Container Registry
Anda perlu menyimpan gambar kontainer Anda di Azure Container Registry (ACR) untuk menjalankan aplikasi Anda di kluster AKS menggunakan Helm. Nama registri Anda harus unik dalam Azure dan berisi 5-50 karakter alfanumerik. Hanya karakter huruf kecil yang diizinkan. SKU dasar adalah titik masuk yang dioptimalkan biaya untuk tujuan pengembangan yang menyediakan keseimbangan penyimpanan dan hasil.
Buat grup sumber daya Azure menggunakan perintah az group create . Contoh berikut ini menampilkan cara membuat grup sumber daya bernama myResourceGroup di lokasi eastus.
az group create --name myResourceGroup --location eastus
Buat Azure Container Registry dengan nama unik dengan memanggil perintah az acr create . Contoh berikut membuat ACR bernama myhelmacr dengan SKU Dasar .
az acr create --resource-group myResourceGroup --name myhelmacr --sku Basic
Output Anda akan terlihat mirip dengan contoh output ringkas berikut. Catat nilai loginServer Anda untuk digunakan ACR Anda di langkah selanjutnya.
{ "adminUserEnabled": false, "creationDate": "2023-12-26T22:36:23.998425+00:00", "id": "/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myhelmacr", "location": "eastus", "loginServer": "myhelmacr.azurecr.io", "name": "myhelmacr", "networkRuleSet": null, "provisioningState": "Succeeded", "resourceGroup": "myResourceGroup", "sku": { "name": "Basic", "tier": "Basic" }, "status": null, "storageAccount": null, "tags": {}, "type": "Microsoft.ContainerRegistry/registries" }
Membuat kluster AKS
Kluster AKS baru Anda memerlukan akses ke ACR untuk menarik gambar kontainer dan menjalankannya.
Buat kluster AKS menggunakan perintah az aks create dengan
--attach-acr
parameter untuk memberikan akses kluster ke ACR Anda. Contoh berikut membuat kluster AKS bernama myAKSCluster dan memberinya akses ke myhelmacr ACR. Pastikan Anda menggantimyhelmacr
dengan nama ACR Anda.az aks create --resource-group myResourceGroup --name myAKSCluster --location eastus --attach-acr myhelmacr --generate-ssh-keys
Menyambungkan ke kluster AKS Anda
Untuk menyambungkan kluster Kubernetes secara lokal, Anda menggunakan klien baris perintah Kubernetes, kubectl. kubectl
sudah diinstal jika Anda menggunakan Azure Cloud Shell.
Instal
kubectl
secara lokal menggunakan perintah az aks install-cli .az aks install-cli
Konfigurasikan
kubectl
untuk terhubung ke kluster Kubernetes menggunakan perintah az aks get-credentials. Perintah berikut mendapatkan kredensial untuk kluster AKS bernama myAKSCluster di myResourceGroup.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Mengunduh aplikasi contoh
Mulai cepat menggunakan Aplikasi Azure Vote.
Kloning aplikasi dari GitHub menggunakan
git clone
perintah .git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
Navigasi ke
azure-vote
direktori menggunakancd
perintah .cd azure-voting-app-redis/azure-vote/
Membangun dan mendorong aplikasi sampel ke ACR
Buat dan dorong gambar ke ACR Anda menggunakan perintah az acr build . Contoh berikut membangun gambar bernama azure-vote-front:v1 dan mendorongnya ke myhelmacr ACR. Pastikan Anda mengganti
myhelmacr
dengan nama ACR Anda.az acr build --image azure-vote-front:v1 --registry myhelmacr --file Dockerfile .
Catatan
Anda juga dapat mengimpor bagan Helm ke ACR Anda. Untuk informasi selengkapnya, lihat Dorong dan tarik bagan Helm ke registri kontainer Azure.
Membuat bagan Helm Anda
Hasilkan bagan Helm Anda menggunakan perintah
helm create
.helm create azure-vote-front
Perbarui azure-vote-front/Chart.yaml untuk menambahkan dependensi untuk bagan redis dari
https://charts.bitnami.com/bitnami
repositori bagan dan perbaruiappVersion
kev1
, seperti yang ditunjukkan dalam contoh berikut:Catatan
Versi gambar kontainer yang ditampilkan dalam panduan ini telah diuji untuk bekerja dengan contoh ini tetapi mungkin bukan versi terbaru yang tersedia.
apiVersion: v2 name: azure-vote-front description: A Helm chart for Kubernetes dependencies: - name: redis version: 17.3.17 repository: https://charts.bitnami.com/bitnami ... # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. appVersion: v1
Perbarui dependensi bagan Helm Anda menggunakan
helm dependency update
perintah .helm dependency update azure-vote-front
Perbarui azure-vote-front/values.yaml dengan perubahan berikut.
- Tambahkan bagian redis untuk mengatur detail gambar, port kontainer, dan nama penyebaran.
- Tambahkan backendName untuk menyambungkan bagian ujung depan ke penyebaran redis.
- Ubah image.repository ke
<loginServer>/azure-vote-front
. - Ubah image.tag ke
v1
. - Ubah service.type ke LoadBalancer.
Contohnya:
replicaCount: 1 backendName: azure-vote-backend-master redis: image: registry: mcr.microsoft.com repository: oss/bitnami/redis tag: 6.0.8 fullnameOverride: azure-vote-backend auth: enabled: false image: repository: myhelmacr.azurecr.io/azure-vote-front pullPolicy: IfNotPresent tag: "v1" ... service: type: LoadBalancer port: 80 ...
env
Tambahkan bagian ke azure-vote-front/templates/deployment.yaml untuk meneruskan nama penyebaran redis.... containers: - name: {{ .Chart.Name }} securityContext: {{- toYaml .Values.securityContext | nindent 12 }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} env: - name: REDIS value: {{ .Values.backendName }} ...
Jalankan bagan Helm Anda
Pasang aplikasi Anda menggunakan bagan Helm Anda dengan perintah
helm install
.helm install azure-vote-front azure-vote-front/
Perlu beberapa menit agar layanan mengembalikan alamat IP publik. Pantau kemajuan menggunakan perintah
kubectl get service
dengan argumen--watch
.kubectl get service azure-vote-front --watch
Ketika layanan siap,
EXTERNAL-IP
nilai berubah dari<pending>
ke alamat IP. TekanCTRL+C
untuk menghentikankubectl
proses menonton.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE azure-vote-front LoadBalancer 10.0.18.228 <pending> 80:32021/TCP 6s ... azure-vote-front LoadBalancer 10.0.18.228 52.188.140.81 80:32021/TCP 2m6s
Arahkan ke penyeimbang muatan aplikasi Anda di browser menggunakan
<EXTERNAL-IP>
untuk melihat aplikasi contoh.
Menghapus kluster
Hapus grup sumber daya Anda, kluster AKS, registri kontainer Azure, gambar kontainer yang disimpan di ACR, dan semua sumber daya terkait menggunakan perintah az group delete dengan
--yes
parameter untuk mengonfirmasi penghapusan dan--no-wait
parameter untuk kembali ke prompt perintah tanpa menunggu operasi selesai.az group delete --name myResourceGroup --yes --no-wait
Catatan
Jika Anda membuat kluster AKS dengan identitas terkelola yang ditetapkan sistem (opsi identitas default dalam mulai cepat ini), identitas dikelola oleh platform dan tidak memerlukan penghapusan.
Jika Anda membuat kluster AKS dengan perwakilan layanan, perwakilan layanan tidak akan dihapus saat Anda menghapus kluster. Untuk menghapus perwakilan layanan, lihat Pertimbangan dan penghapusan perwakilan layanan AKS.
Langkah berikutnya
Untuk informasi selengkapnya tentang menggunakan Helm, lihat dokumentasi Helm.
Azure Kubernetes Service