Menyebarkan Beban Kerja pada AKS
Cipta kluster AKS, sebarkan aplikasi berbilang bekas menggunakan kubectl dan carta Helm, serta dedahkannya secara luaran dengan perkhidmatan Azure Load Balancer.
Menyebarkan Beban Kerja pada AKS ialah pelajaran Cloud & IT Cert Prep percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Cloud & IT Cert Prep, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.
Apakah Azure Kubernetes Service?
Azure Kubernetes Service (AKS) ialah tawaran Kubernetes terurus yang membolehkan Microsoft mengendalikan dan menyelenggara satah kawalan (pelayan API, etcd, penjadual) tanpa kos. Anda hanya membayar nod pekerja (VM). AKS mengendalikan peningkatan versi Kubernetes, penampalan OS nod, penskalaan satah kawalan, serta penyepaduan dengan rangkaian, storan dan identiti Azure. Hal ini mengurangkan beban operasi untuk menjalankan Kubernetes dalam persekitaran produksi dengan ketara.
Mencipta Kluster AKS
Cipta kluster AKS dengan az aks create, dengan menetapkan bilangan nod, saiz VM dan pilihan rangkaian. AKS secara automatik mencipta kumpulan sumber nod yang mengandungi VM, cakera terurus, NIC dan pengimbang beban. Mod rangkaian yang disyorkan ialah Azure CNI — setiap pod mendapat alamat IP VNet sebenar, yang membolehkan sambungan terus dengan perkhidmatan Azure lain 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 Nod
Kluster AKS boleh mempunyai berbilang kumpulan nod — kumpulan VM dengan konfigurasi yang sama. kumpulan nod sistem menjalankan komponen sistem Kubernetes yang kritikal (pod kube-system). Kumpulan nod pengguna menjalankan beban kerja aplikasi anda. Pengasingan kumpulan membolehkan anda menggabungkan SKU VM — kumpulan serba guna untuk aplikasi web dan kumpulan GPU untuk beban kerja ML — serta menskalakan setiap kumpulan secara berasingan.
# 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 Berbilang Bekas
Terapkan aplikasi berbilang peringkat pada AKS dengan menulis fail manifes Kubernetes yang berasingan untuk setiap peringkat dan menggunakannya dengan kubectl apply. Penerapan biasa merangkumi Deployment untuk peringkat web, Deployment untuk peringkat API, Services untuk menyambungkannya, ConfigMap untuk konfigurasi persekitaran dan sumber Ingress untuk mendedahkan aplikasi secara luaran melalui satu nama hos.
# 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
Sumber Ingress mentakrifkan peraturan penghalaan HTTP yang memetakan nama hos dan laluan URL kepada perkhidmatan bahagian belakang. Berbeza daripada perkhidmatan LoadBalancer (satu IP luaran bagi setiap perkhidmatan), satu pengawal Ingress mengendalikan semua trafik HTTP luaran dan menghalakannya berdasarkan peraturan. Dalam AKS, gunakan NGINX Ingress Controller atau Application Gateway Ingress Controller (AGIC) untuk menamatkan TLS dan menghalakan trafik kepada berbilang perkhidmatan.
# 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}}Carta Helm untuk Pembungkusan Aplikasi
Helm ialah pengurus pakej untuk Kubernetes. carta menggabungkan semua manifes Kubernetes bagi sesuatu aplikasi (Deployment, Services, Ingress, ConfigMaps) menjadi satu pakej yang mempunyai versi dan boleh diparameterkan. helm install menerapkan carta dengan nilai khusus persekitaran. repositori Helm di Artifact Hub mengehoskan ribuan carta siap bina 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.yamlKemas Kini Berperingkat dan Pemulihan
Kemas kini Deployment dengan menukar tag imej bekas — Kubernetes melakukan kemas kini berperingkat, iaitu mencipta pod baharu dengan imej yang dikemas kini dan menamatkan pod lama secara beransur-ansur sambil memastikan aplikasi terus tersedia. Jika versi baharu bermasalah, pulihkan dengan segera kepada semakan sebelumnya menggunakan kubectl rollout undo. Kubernetes menyimpan sejarah semakan yang boleh dikonfigurasikan bagi 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=2Autoscaler Kluster
Cluster Autoscaler menambah atau membuang nod pekerja daripada kumpulan nod AKS secara automatik berdasarkan penjadualan pod yang menunggu dan penggunaan nod. Apabila pod tidak dapat dijadualkan kerana semua nod telah penuh, Cluster Autoscaler menyediakan nod baharu. Apabila nod kurang digunakan dan pod boleh digabungkan, ia mengosongkan serta membuang nod tersebut. Ini melengkapi Horizontal Pod Autoscaler — HPA menskalakan pod, manakala Cluster Autoscaler menskalakan nod.
# 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
Dayakan Azure Monitor Container Insights untuk mengumpulkan log dan metrik daripada kluster AKS anda tanpa menerapkan alat pemantauan pihak ketiga. Container Insights menyediakan papan pemuka siap bina untuk kesihatan kluster, CPU/memori nod dan pod, log bekas serta penstriman pod secara langsung. Ia disepadukan dengan Prometheus untuk mendapatkan metrik tersuai dan membolehkan semua data ditanya menggunakan KQL dalam 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
Sepadukan AKS dengan Microsoft Entra ID untuk menggunakan pengguna dan kumpulan Azure AD bagi RBAC Kubernetes. Daripada mengurus akaun pengguna Kubernetes yang berasingan, anda menetapkan ClusterRole atau Role bindings kepada ID objek Entra ID. Apabila pembangun menjalankan kubectl, AKS mengesahkan token Entra ID mereka. Ini menyediakan pengurusan identiti berpusat serta disepadukan dengan dasar capaian bersyarat dan 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/myAKSClusterDasar Rangkaian untuk Keselamatan Peringkat Pod
Dasar rangkaian ialah sumber Kubernetes yang mengawal pod mana yang boleh berkomunikasi antara satu sama lain. Secara lalai, semua pod dalam kluster boleh mencapai semua pod lain — dasar rangkaian menyediakan tembok api pada peringkat pod. Pada AKS, dayakan dasar rangkaian Azure atau Calico untuk menguatkuasakan dasar. Corak biasa ialah dasar default-deny yang menyekat semua trafik antara pod, kemudian dasar benarkan yang jelas untuk laluan khusus yang diperlukan oleh 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}}Semakan Ringkas
Uji pemahaman anda tentang konsep Microsoft Azure Fundamentals (AZ-900) daripada pelajaran ini.
Ulang Kaji Pelajaran
Dalam pelajaran ini, anda telah mempelajari bahawa AKS ialah perkhidmatan Kubernetes terurus yang membolehkan Microsoft mengendalikan satah kawalan, carta Helm membungkus aplikasi Kubernetes berbilang sumber untuk penerapan berulang, manakala Cluster Autoscaler menambah dan membuang nod secara dinamik berdasarkan permintaan penjadualan pod. Seterusnya, kita akan meneroka pencetus dan pengikatan Azure Functions.
Pelajari Cloud & IT Cert Prep dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 150
- Pelajaran
- 600
Soalan Lazim
Adakah pelajaran “Menyebarkan Beban Kerja pada AKS” percuma?
Ya — teks penuh “Menyebarkan Beban Kerja pada AKS” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Cloud & IT Cert Prep, tingkat taraf kepada CoddyKit PRO. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Menyebarkan Beban Kerja pada AKS”?
Cipta kluster AKS, sebarkan aplikasi berbilang bekas menggunakan kubectl dan carta Helm, serta dedahkannya secara luaran dengan perkhidmatan Azure Load Balancer. Anda berlatih Cloud & IT Cert Prep menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Cloud & IT Cert Prep?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Cloud & IT Cert Prep di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Menyebarkan Beban Kerja pada AKS” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Cloud & IT Cert Prep ini?
Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Azure Container Registry
- Azure Container Instances
- Konsep Kubernetes untuk Azure
- Menyebarkan Beban Kerja pada AKS