0Pricing
Cloud & IT Cert Prep · Pelajaran

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 MyRG

Kumpulan 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 table

Menerapkan 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/api

Ingress 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.yaml

Pembaruan 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=2

Cluster 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 20

Pemantauan 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 default

RBAC 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/myAKSCluster

Kebijakan 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

  1. Azure Container Registry
  2. Azure Container Instances
  3. Konsep Kubernetes untuk Azure
  4. Menerapkan Beban Kerja di AKS
← Kembali ke Cloud & IT Cert Prep