Menerapkan Beban Kerja di AKS
Buat kluster AKS, terapkan aplikasi multi-kontainer menggunakan kubectl dan bagan Helm, lalu tampilkan secara eksternal dengan layanan Azure Load Balancer.
Menerapkan Beban Kerja di AKS adalah pelajaran Cloud & IT Cert Prep gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cloud & IT Cert Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.
Apa Itu Azure Kubernetes Service?
Azure Kubernetes Service (AKS) adalah layanan Kubernetes terkelola tempat Microsoft mengoperasikan dan memelihara bidang kontrol (server API, etcd, penjadwal) tanpa biaya. Anda hanya membayar node pekerja (VM). AKS menangani peningkatan versi Kubernetes, penambalan OS node, penskalaan bidang kontrol, serta integrasi dengan jaringan, penyimpanan, dan identitas Azure. Hal ini sangat mengurangi beban operasional dalam menjalankan Kubernetes di lingkungan produksi.
Membuat Klaster AKS
Buat klaster AKS dengan az aks create, dengan menentukan jumlah node, ukuran VM, dan opsi jaringan. AKS secara otomatis membuat grup sumber daya node yang berisi VM, disk terkelola, NIC, dan penyeimbang beban. Mode jaringan yang direkomendasikan adalah Azure CNI — setiap pod mendapatkan alamat IP VNet nyata, sehingga dapat terhubung langsung dengan layanan Azure lainnya tanpa NAT.
# Create an AKS cluster with 3 nodes
az aks create \
--name myAKSCluster \
--resource-group MyRG \
--location eastus \
--node-count 3 \
--node-vm-size Standard_D2s_v3 \
--enable-managed-identity \
--attach-acr mycontainerregistry \
--network-plugin azure \
--generate-ssh-keys
# Get kubectl credentials
az aks get-credentials --name myAKSCluster --resource-group MyRGKumpulan Node
Klaster AKS dapat memiliki beberapa kumpulan node — grup VM dengan konfigurasi yang sama. Kumpulan node sistem menjalankan komponen sistem Kubernetes yang penting (pod kube-system). Kumpulan node pengguna menjalankan beban kerja aplikasi Anda. Kumpulan terpisah memungkinkan Anda menggabungkan SKU VM — kumpulan serbaguna untuk aplikasi web dan kumpulan GPU untuk beban kerja ML — serta menskalakan masing-masing secara independen.
# Add a GPU node pool for ML workloads
az aks nodepool add \
--cluster-name myAKSCluster \
--resource-group MyRG \
--name gpupool \
--node-count 2 \
--node-vm-size Standard_NC6s_v3 \
--node-taints sku=gpu:NoSchedule
# List node pools
az aks nodepool list \
--cluster-name myAKSCluster \
--resource-group MyRG \
-o tableMenerapkan Aplikasi Multi-Container
Terapkan aplikasi bertingkat ke AKS dengan menulis file manifes Kubernetes terpisah untuk setiap tingkat dan menerapkannya menggunakan kubectl apply. Penerapan biasanya mencakup Deployment untuk tingkat web, Deployment untuk tingkat API, Service untuk menghubungkan keduanya, ConfigMap untuk konfigurasi lingkungan, dan resource Ingress untuk mengekspos aplikasi secara eksternal melalui satu nama host.
# Apply all manifests in a directory
kubectl apply -f k8s/
# Or apply individual files
kubectl apply -f frontend-deployment.yaml
kubectl apply -f frontend-service.yaml
kubectl apply -f api-deployment.yaml
kubectl apply -f api-service.yaml
kubectl apply -f ingress.yaml
# Watch rollout status
kubectl rollout status deployment/frontend
kubectl rollout status deployment/apiIngress dan Application Gateway
Resource Ingress menentukan aturan perutean HTTP yang memetakan nama host dan jalur URL ke layanan backend. Berbeda dengan layanan LoadBalancer (satu IP eksternal untuk setiap layanan), satu pengontrol Ingress menangani semua lalu lintas HTTP eksternal dan merutekannya berdasarkan aturan. Di AKS, gunakan NGINX Ingress Controller atau Application Gateway Ingress Controller (AGIC) untuk mengakhiri TLS dan merutekan lalu lintas ke beberapa layanan.
# Ingress routing traffic to two services by path
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: myapp-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: nginx
tls:
- hosts: [myapp.contoso.com]
secretName: myapp-tls
rules:
- host: myapp.contoso.com
http:
paths:
- path: /api
pathType: Prefix
backend:
service: {name: api-svc, port: {number: 80}}
- path: /
pathType: Prefix
backend:
service: {name: frontend-svc, port: {number: 80}}Chart Helm untuk Pengemasan Aplikasi
Helm adalah pengelola paket untuk Kubernetes. Sebuah chart menggabungkan semua manifes Kubernetes untuk suatu aplikasi (Deployment, Service, Ingress, ConfigMap) menjadi satu paket berversi yang dapat diparameterkan. helm install menerapkan chart dengan nilai khusus lingkungan. Repositori Helm di Artifact Hub menyediakan ribuan chart siap pakai untuk infrastruktur umum (NGINX, cert-manager, Prometheus, Redis).
# Add the NGINX Ingress Controller chart repo
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
# Install NGINX Ingress Controller
helm install ingress-nginx ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--create-namespace \
--set controller.replicaCount=2
# Install your own app chart with custom values
helm install myapp ./charts/myapp -f values-prod.yamlPembaruan Bergulir dan Rollback
Perbarui Deployment dengan mengubah tag image container — Kubernetes melakukan pembaruan bergulir, membuat pod baru dengan image yang diperbarui dan menghentikan pod lama secara bertahap, sehingga aplikasi tetap tersedia selama proses berlangsung. Jika versi baru bermasalah, segera lakukan rollback ke revisi sebelumnya menggunakan kubectl rollout undo. Kubernetes menyimpan riwayat revisi yang dapat dikonfigurasi untuk setiap Deployment.
# Update the image to a new version
kubectl set image deployment/myapp \
myapp=mycontainerregistry.azurecr.io/myapp:v2.0
# Watch the rollout progress
kubectl rollout status deployment/myapp
# View rollout history
kubectl rollout history deployment/myapp
# Rollback to the previous version
kubectl rollout undo deployment/myapp
# Rollback to a specific revision
kubectl rollout undo deployment/myapp --to-revision=2Cluster Autoscaler
Cluster Autoscaler secara otomatis menambahkan atau menghapus node pekerja dari kumpulan node AKS berdasarkan pod yang menunggu penjadwalan dan pemanfaatan node. Ketika pod tidak dapat dijadwalkan karena semua node penuh, Cluster Autoscaler menyediakan node baru. Ketika node kurang dimanfaatkan dan pod dapat dikonsolidasikan, autoscaler menguras lalu menghapus node tersebut. Ini melengkapi Horizontal Pod Autoscaler — HPA menskalakan pod, sedangkan Cluster Autoscaler menskalakan node.
# Enable Cluster Autoscaler on the default node pool
az aks update \
--name myAKSCluster \
--resource-group MyRG \
--enable-cluster-autoscaler \
--min-count 2 \
--max-count 10
# Update autoscaler bounds on a specific node pool
az aks nodepool update \
--cluster-name myAKSCluster \
--resource-group MyRG \
--name nodepool1 \
--enable-cluster-autoscaler \
--min-count 3 \
--max-count 20Pemantauan AKS dengan Azure Monitor
Aktifkan Azure Monitor Container Insights untuk mengumpulkan log dan metrik dari klaster AKS tanpa menerapkan alat pemantauan pihak ketiga. Container Insights menyediakan dasbor siap pakai untuk kesehatan klaster, CPU/memori node dan pod, log container, serta streaming pod secara langsung. Layanan ini terintegrasi dengan Prometheus untuk mengambil metrik khusus dan memungkinkan semua data dikueri menggunakan KQL di Log Analytics.
# Enable Azure Monitor Container Insights on AKS
az aks enable-addons \
--addons monitoring \
--name myAKSCluster \
--resource-group MyRG \
--workspace-resource-id /subscriptions/.../workspaces/MyLogAnalytics
# Stream live logs from a running pod
kubectl logs -f deployment/myapp -c myapp
# Query pod resource usage
kubectl top pods --namespace defaultRBAC AKS dan Azure Active Directory
Integrasikan AKS dengan Microsoft Entra ID untuk menggunakan pengguna dan grup Azure AD bagi RBAC Kubernetes. Alih-alih mengelola akun pengguna Kubernetes yang terpisah, Anda menetapkan ClusterRole atau Role bindings ke ID objek Entra ID. Saat pengembang menjalankan kubectl, AKS memvalidasi token Entra ID mereka. Hal ini menyediakan pengelolaan identitas terpusat dan terintegrasi dengan akses bersyarat serta kebijakan MFA.
# Enable Entra ID RBAC on an AKS cluster
az aks update \
--name myAKSCluster \
--resource-group MyRG \
--enable-azure-rbac
# Assign a built-in AKS role to an Entra group
az role assignment create \
--role 'Azure Kubernetes Service RBAC Reader' \
--assignee '<Entra-Group-Object-ID>' \
--scope /subscriptions/.../resourceGroups/MyRG/providers/Microsoft.ContainerService/managedClusters/myAKSClusterKebijakan Jaringan untuk Keamanan Tingkat Pod
Kebijakan jaringan adalah resource Kubernetes yang mengontrol pod mana yang dapat berkomunikasi satu sama lain. Secara default, semua pod dalam klaster dapat menjangkau pod lainnya — kebijakan jaringan menyediakan firewall pada tingkat pod. Di AKS, aktifkan kebijakan jaringan Azure atau Calico untuk menerapkan kebijakan tersebut. Pola yang umum adalah kebijakan default-deny yang memblokir semua lalu lintas antarpod, kemudian kebijakan izinkan eksplisit untuk jalur tertentu yang diperlukan aplikasi Anda.
# Default deny all ingress to pods in namespace
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny-ingress
namespace: production
spec:
podSelector: {} # Matches all pods
policyTypes:
- Ingress
# Allow API pods to receive from frontend pods only
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: api-allow-frontend
spec:
podSelector: {matchLabels: {app: api}}
ingress:
- from:
- podSelector: {matchLabels: {app: frontend}}Pemeriksaan Singkat
Uji pemahaman Anda tentang konsep Microsoft Azure Fundamentals (AZ-900) dari pelajaran ini.
Ringkasan Pelajaran
Dalam pelajaran ini, Anda telah mempelajari bahwa AKS adalah layanan Kubernetes terkelola tempat Microsoft mengoperasikan bidang kontrol, chart Helm mengemas aplikasi Kubernetes dengan banyak resource untuk penerapan yang dapat diulang, dan Cluster Autoscaler menambahkan serta menghapus node secara dinamis berdasarkan kebutuhan penjadwalan pod. Selanjutnya, kita akan mempelajari pemicu dan binding Azure Functions.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Menerapkan Beban Kerja di AKS” gratis?
Ya — teks lengkap “Menerapkan Beban Kerja di AKS” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cloud & IT Cert Prep, upgrade ke CoddyKit PRO. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Menerapkan Beban Kerja di AKS”?
Buat kluster AKS, terapkan aplikasi multi-kontainer menggunakan kubectl dan bagan Helm, lalu tampilkan secara eksternal dengan layanan Azure Load Balancer. Kamu berlatih Cloud & IT Cert Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Cloud & IT Cert Prep?
Tidak diperlukan pengalaman sebelumnya. Cloud & IT Cert Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Menerapkan Beban Kerja di AKS” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Cloud & IT Cert Prep ini?
Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Azure Container Registry
- Azure Container Instances
- Konsep Kubernetes untuk Azure
- Menerapkan Beban Kerja di AKS