Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Azure Kubernetes Service (AKS) merupakan layanan Kube terkelola yang memungkinkan Anda menyebarkan dan mengelola kluster dengan cepat. Dalam panduan singkat ini, Anda akan:
- Sebarkan kluster AKS menggunakan portal Microsoft Azure.
- Jalankan contoh aplikasi multi-kontainer berupa kelompok layanan mikro dan antarmuka web yang mensimulasikan skenario ritel.
Nota
Untuk memulai provisi kluster AKS dengan cepat, artikel ini menyertakan langkah-langkah untuk menyebarkan kluster dengan pengaturan default hanya untuk tujuan evaluasi. Sebelum menyebarkan kluster siap produksi, kami sarankan Anda membiasakan diri dengan arsitektur referensi dasar kami untuk mempertimbangkan bagaimana kluster tersebut selaras dengan kebutuhan bisnis Anda.
Sebelum Anda mulai
Panduan memulai cepat ini mengasumsikan bahwa Anda memiliki pemahaman dasar tentang konsep Kubernetes. Untuk informasi lebih, lihat konsep inti Kubernetes untuk Azure Kubernetes Service (AKS).
- Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.
- Jika Anda tidak terbiasa dengan Azure Cloud Shell, tinjau Gambaran Umum Azure Cloud Shell.
- Pastikan bahwa identitas yang Anda gunakan untuk membuat kluster Anda memiliki izin minimum yang sesuai. Untuk informasi selengkapnya tentang akses dan identitas untuk AKS, lihat Opsi akses dan identitas untuk Azure Kubernetes Service (AKS).
Penting
Mulai 30 November 2025, Azure Kubernetes Service (AKS) tidak lagi mendukung atau menyediakan pembaruan keamanan untuk Azure Linux 2.0. Gambar node Azure Linux 2.0 dibekukan pada rilis 202512.06.0. Mulai 31 Maret 2026, gambar simpul akan dihapus, dan Anda tidak akan dapat menskalakan kumpulan simpul Anda. Migrasikan ke versi Linux Azure yang didukung dengan meningkatkan kumpulan simpul Anda ke versi Kubernetes yang didukung atau bermigrasi ke osSku AzureLinux3. Untuk informasi selengkapnya, lihat [Penghentian] pool simpul Azure Linux 2.0 di AKS.
Membuat kluster AKS
Masuk ke portal Azure.
Pada beranda portal Microsoft Azure, pilih Membuat sumber daya.
Di bagian Kategori, pilih Layanan> InfrastrukturAzure Kubernetes Service (AKS).
Di tab Dasar, konfigurasikan pengaturan berikut:
Di bawah Detail proyek:
- Langganan: Pilih langganan Azure yang ingin Anda gunakan untuk kluster AKS ini.
- Grup sumber daya: Pilih Buat baru, masukkan nama grup sumber daya, seperti myResourceGroup, lalu pilih Ok. Meskipun Anda dapat memilih grup sumber daya yang ada, untuk tujuan pengujian atau evaluasi, sebaiknya buat grup sumber daya untuk menghosting sumber daya ini untuk sementara waktu dan menghindari dampak beban kerja produksi atau pengembangan Anda.
Di bawah Detail kluster:
- Konfigurasi prasetel kluster: Pilih Dev/Test. Untuk detail selengkapnya tentang konfigurasi prasetel, lihat Prasetel konfigurasi kluster di portal Microsoft Azure. Anda dapat mengubah konfigurasi prasetel saat membuat kluster dengan memilih Bandingkan preset dan memilih opsi yang berbeda.
Nama kluster Kubernetes: Masukkan nama kluster, seperti myAKSCluster.
Wilayah: Pilih wilayah, seperti US Timur 2.
Manajer armada: Tidak ada
Zona ketersediaan: Tidak ada. Batalkan pemilihan zona.
Tingkat harga AKS: Pilih Gratis.
Biarkan nilai default untuk pengaturan yang tersisa, dan pilih Berikutnya.
Pada tab Node pools, konfigurasikan pengaturan berikut:
Pilih Tambahkan kumpulan simpul dan pilih Tambahkan kumpulan simpul Set Skala Komputer Virtual
Nama: Masukkan nama seperti nplinux.
Mode: Pilih Pengguna.
OS SKU: Pilih Ubuntu Linux.
Zona ketersediaan: Pilih Tidak Ada.
Biarkan kotak centang Aktifkan Azure Spot instances tidak dicentang.
Ukuran simpul: Pilih Tentukan ukuran. Pada halaman Pilih ukuran VM , cari D2s_v5, pilih ukuran VM tersebut, dan Pilih.
Gunakan nilai default untuk pengaturan yang tersisa, dan pilih Tambahkan.
Pilih Tinjau + buat untuk menjalankan validasi pada konfigurasi kluster. Setelah validasi selesai, pilih Create.
Perlu waktu beberapa menit untuk membuat kluster AKS. Saat penyebaran Anda selesai, navigasikan ke sumber daya Anda dengan memilih Buka sumber daya, atau dengan menelusuri ke grup sumber daya kluster AKS dan memilih sumber daya AKS.
Menyambungkan ke kluster
Anda menggunakan klien baris perintah Kube, kubectl, untuk mengelola kluster Kubernetes.
kubectl sudah diinstal jika Anda menggunakan Azure Cloud Shell. Jika Anda tidak terbiasa dengan Cloud Shell, tinjau Gambaran Umum Azure Cloud Shell.
Jika Anda menggunakan Cloud Shell, buka dengan tombol >_ di bagian atas portal Microsoft Azure. Jika Anda menggunakan PowerShell secara lokal, sambungkan Connect-AzAccount ke Azure melalui perintah . Jika Anda menggunakan Azure CLI secara lokal, sambungkan az login ke Azure melalui perintah .
Konfigurasikan
kubectluntuk terhubung ke kluster Kubernetes menggunakan perintahaz aks get-credentials. Perintah ini mengunduh kredensial dan mengonfigurasi CLI Kubernetes untuk menggunakannya.az aks get-credentials --resource-group myResourceGroup --name myAKSClusterVerifikasi koneksi ke kluster Anda menggunakan
kubectl getuntuk mengembalikan daftar node kluster.kubectl get nodesContoh output berikut menunjukkan satu simpul yang dibuat pada langkah sebelumnya. Pastikan status node adalah Ready.
NAME STATUS ROLES AGE VERSION aks-nodepool1-31718369-0 Ready agent 6m44s v1.15.10
Menyebarkan aplikasi
Anda menggunakan file manifes untuk membuat semua objek yang diperlukan untuk menjalankan aplikasi AKS Store. File manifes Kubernetes mendefinisikan status kluster yang diinginkan, seperti gambar kontainer mana yang akan dijalankan. Manifes mencakup penyebaran dan layanan Kubernetes berikut:
- Simpan depan: Aplikasi web bagi pelanggan untuk melihat produk dan melakukan pemesanan.
- Layanan produk: Menampilkan informasi produk.
- Layanan Pemesanan : Mengurus pemesanan.
- Rabbit MQ: Antrean pesan untuk pemrosesan pesanan.
Nota
Kami tidak menyarankan menjalankan kontainer stateful, seperti RabbitMQ, tanpa penyimpanan persisten untuk produksi. Kontainer ini digunakan di sini untuk kesederhanaan, tetapi sebaiknya gunakan layanan terkelola, seperti Azure Cosmos DB atau Azure Service Bus.
Di Cloud Shell, buka editor dan buat file bernama
aks-store-quickstart.yaml.Tempel manifes berikut ke editor:
apiVersion: apps/v1 kind: StatefulSet metadata: name: rabbitmq spec: serviceName: rabbitmq replicas: 1 selector: matchLabels: app: rabbitmq template: metadata: labels: app: rabbitmq spec: nodeSelector: "kubernetes.io/os": linux containers: - name: rabbitmq image: mcr.microsoft.com/mirror/docker/library/rabbitmq:3.10-management-alpine ports: - containerPort: 5672 name: rabbitmq-amqp - containerPort: 15672 name: rabbitmq-http env: - name: RABBITMQ_DEFAULT_USER value: "username" - name: RABBITMQ_DEFAULT_PASS value: "password" resources: requests: cpu: 10m memory: 128Mi limits: cpu: 250m memory: 256Mi volumeMounts: - name: rabbitmq-enabled-plugins mountPath: /etc/rabbitmq/enabled_plugins subPath: enabled_plugins volumes: - name: rabbitmq-enabled-plugins configMap: name: rabbitmq-enabled-plugins items: - key: rabbitmq_enabled_plugins path: enabled_plugins --- apiVersion: v1 data: rabbitmq_enabled_plugins: | [rabbitmq_management,rabbitmq_prometheus,rabbitmq_amqp1_0]. kind: ConfigMap metadata: name: rabbitmq-enabled-plugins --- apiVersion: v1 kind: Service metadata: name: rabbitmq spec: selector: app: rabbitmq ports: - name: rabbitmq-amqp port: 5672 targetPort: 5672 - name: rabbitmq-http port: 15672 targetPort: 15672 type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: name: order-service spec: replicas: 1 selector: matchLabels: app: order-service template: metadata: labels: app: order-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: order-service image: ghcr.io/azure-samples/aks-store-demo/order-service:latest ports: - containerPort: 3000 env: - name: ORDER_QUEUE_HOSTNAME value: "rabbitmq" - name: ORDER_QUEUE_PORT value: "5672" - name: ORDER_QUEUE_USERNAME value: "username" - name: ORDER_QUEUE_PASSWORD value: "password" - name: ORDER_QUEUE_NAME value: "orders" - name: FASTIFY_ADDRESS value: "0.0.0.0" resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi startupProbe: httpGet: path: /health port: 3000 failureThreshold: 5 initialDelaySeconds: 20 periodSeconds: 10 readinessProbe: httpGet: path: /health port: 3000 failureThreshold: 3 initialDelaySeconds: 3 periodSeconds: 5 livenessProbe: httpGet: path: /health port: 3000 failureThreshold: 5 initialDelaySeconds: 3 periodSeconds: 3 initContainers: - name: wait-for-rabbitmq image: busybox command: ['sh', '-c', 'until nc -zv rabbitmq 5672; do echo waiting for rabbitmq; sleep 2; done;'] resources: requests: cpu: 1m memory: 50Mi limits: cpu: 75m memory: 128Mi --- apiVersion: v1 kind: Service metadata: name: order-service spec: type: ClusterIP ports: - name: http port: 3000 targetPort: 3000 selector: app: order-service --- apiVersion: apps/v1 kind: Deployment metadata: name: product-service spec: replicas: 1 selector: matchLabels: app: product-service template: metadata: labels: app: product-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: product-service image: ghcr.io/azure-samples/aks-store-demo/product-service:latest ports: - containerPort: 3002 env: - name: AI_SERVICE_URL value: "http://ai-service:5001/" resources: requests: cpu: 1m memory: 1Mi limits: cpu: 2m memory: 20Mi readinessProbe: httpGet: path: /health port: 3002 failureThreshold: 3 initialDelaySeconds: 3 periodSeconds: 5 livenessProbe: httpGet: path: /health port: 3002 failureThreshold: 5 initialDelaySeconds: 3 periodSeconds: 3 --- apiVersion: v1 kind: Service metadata: name: product-service spec: type: ClusterIP ports: - name: http port: 3002 targetPort: 3002 selector: app: product-service --- apiVersion: apps/v1 kind: Deployment metadata: name: store-front spec: replicas: 1 selector: matchLabels: app: store-front template: metadata: labels: app: store-front spec: nodeSelector: "kubernetes.io/os": linux containers: - name: store-front image: ghcr.io/azure-samples/aks-store-demo/store-front:latest ports: - containerPort: 8080 name: store-front env: - name: VUE_APP_ORDER_SERVICE_URL value: "http://order-service:3000/" - name: VUE_APP_PRODUCT_SERVICE_URL value: "http://product-service:3002/" resources: requests: cpu: 1m memory: 200Mi limits: cpu: 1000m memory: 512Mi startupProbe: httpGet: path: /health port: 8080 failureThreshold: 3 initialDelaySeconds: 5 periodSeconds: 5 readinessProbe: httpGet: path: /health port: 8080 failureThreshold: 3 initialDelaySeconds: 3 periodSeconds: 3 livenessProbe: httpGet: path: /health port: 8080 failureThreshold: 5 initialDelaySeconds: 3 periodSeconds: 3 --- apiVersion: v1 kind: Service metadata: name: store-front spec: ports: - port: 80 targetPort: 8080 selector: app: store-front type: LoadBalancerUntuk perincian file manifest YAML, lihat Penerapan dan manifes YAML.
Jika Anda membuat dan menyimpan file YAML secara lokal, maka Anda dapat mengunggah file manifes ke direktori default Anda di CloudShell dengan memilih tombol Unggah/Unduh file dan memilih file dari sistem file lokal Anda.
Sebarkan aplikasi menggunakan
kubectl applyperintah dan tentukan nama manifes YAML Anda:kubectl apply -f aks-store-quickstart.yamlContoh output berikut menunjukkan penyebaran dan layanan:
deployment.apps/rabbitmq 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
Uji aplikasi
Ketika aplikasi berjalan, layanan Kubernetes mengekspos front end aplikasi ke internet. Diperlukan beberapa menit untuk menyelesaikan proses ini.
Periksa status pod yang disebarkan menggunakan perintah
kubectl get pods. Pastikan semua pod berada dalam keadaanRunningsebelum melanjutkan.kubectl get podsPeriksa alamat IP publik untuk aplikasi.
store-frontPantau kemajuan menggunakan perintahkubectl get servicedengan argumen--watch.kubectl get service store-front --watchKeluaran EXTERNAL-IP untuk layanan
store-frontawalnya ditampilkan sebagai tertunda:NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-front LoadBalancer 10.0.100.10 <pending> 80:30025/TCP 4h4mSaat alamat IP EKSTERNAL berubah dari tertunda menjadi alamat IP publik yang sebenarnya, gunakan
CTRL-Cuntuk menghentikan proses pemantauankubectl.Keluaran contoh berikut menunjukkan alamat IP publik yang valid yang diberikan ke layanan.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-front LoadBalancer 10.0.100.10 20.62.159.19 80:30025/TCP 4h5mBuka browser web ke alamat IP eksternal layanan Anda untuk melihat aplikasi Azure Store beraksi.
Hapus kluster tersebut
Jika Anda tidak berencana untuk melalui seri tutorial AKS, bersihkan sumber daya yang tidak perlu untuk menghindari biaya Azure.
Di portal Microsoft Azure, navigasikan ke grup sumber daya kluster AKS Anda.
Pilih Hapus grup sumber daya.
Masukkan nama grup sumber daya yang akan dihapus, lalu pilih Hapus>Hapus.
Nota
Kluster AKS dibuat dengan identitas terkelola yang ditetapkan sistem. Identitas ini dikelola oleh platform dan tidak memerlukan penghapusan.
Langkah selanjutnya
Dalam panduan cepat ini, Anda mengimplementasikan kluster Kubernetes, lalu mengimplementasikan aplikasi multi-kontainer sederhana ke kluster tersebut. Aplikasi sampel ini hanya untuk tujuan demo dan tidak mewakili semua praktik terbaik untuk aplikasi Kubernetes. Untuk panduan tentang membuat solusi lengkap dengan AKS untuk produksi, lihat panduan solusi AKS.
Untuk mempelajari lebih lanjut tentang AKS dan menelusuri contoh kode-ke-penyebaran lengkap, lanjutkan ke seri tutorial kluster Kubernetes.