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.
Virtual Node v2 adalah tumpukan Simpul Virtual yang ditingkatkan yang memperluas AKS di luar simpul berbasis VM dengan menjalankan pod pada komputasi tanpa server di Azure Container Instances (ACI). Beban kerja meledak ke ACI dalam hitungan detik tanpa menunggu simpul baru diprovisikan, dan Anda hanya membayar komputasi yang Anda gunakan saat pod sedang berjalan. Simpul Virtual v2 dikirimkan sebagai ekstensi kluster AKS.
Important
Fitur pratinjau AKS tersedia atas dasar layanan mandiri dan pendaftaran sukarela. Pratinjau disediakan "apa adanya" dan "sebagaimana tersedia," dan pratinjau tersebut dikecualikan dari perjanjian tingkat layanan (SLA) serta garansi terbatas. Fitur pratinjau AKS sebagian didukung oleh dukungan pelanggan sebatas upaya terbaik. Dengan demikian, fitur-fitur ini tidak dimaksudkan untuk penggunaan produksi. Untuk informasi lebih lanjut, lihat artikel dukungan berikut ini:
Dukungan
- Kontainer Inisialisasi
- Alias host
- Kait siklus hidup kontainer (
postStartdanpreStop) -
kubectl execdengan argumen - Volume persisten dan PVC (hanya Azure Files)
- Peering Jaringan VNet
- Keluar yang dikontrol NSG
- NAT Gateway untuk keluar
- Kontainer rahasia
- Hingga 200 pod per simpul virtual
Limitations
Fitur-fitur berikut tidak didukung:
- Windows Kontainer
- DaemonSets
- Penerusan port
- IPv6
- Rentang IP yang diizinkan untuk server API
- Azure CNI Overlay (lapisan jaringan CNI Azure)
- Cilium atau NPM untuk kebijakan jaringan
- Bawa jaringan virtual (BYO) Anda sendiri
- Beberapa instans ekstensi per kluster
- Kelompok cadangan
Ketersediaan sumber daya dan batas kuota
Simpul Virtual v2 tersedia di semua wilayah cloud publik Azure di mana Azure Container Instances mendukung SKU VNet. Untuk informasi selengkapnya, lihat Ketersediaan sumber daya & batas kuota untuk ACI.
Prerequisites
- Azure CNI dalam mode node-subnet
- Calico atau tidak ada sebagai kebijakan jaringan
- Identitas beban kerja diaktifkan
- Setidaknya satu kumpulan simpul dengan ukuran VM 4+ vCPU dan memori 16+ GiB. Setiap simpul virtual mencadangkan sekitar 3 vCPU dan memori 12 GiB pada simpul AKS di kluster Anda, jadi pastikan simpul Anda memiliki sumber daya yang cukup.
- k8s-extension versi 1.8 atau lebih tinggi
-
kubectl1.30 atau yang lebih baru
Daftarkan penyedia sumber daya ACI:
az provider register --namespace Microsoft.ContainerInstance
Note
Jalankan perintah berikut jika Anda mengalami kesalahan pada tahap apa pun dari proses pengaktifan ekstensi.
az provider register --namespace Microsoft.KubernetesConfig
Aktifkan Simpul Virtual v2
Instal ekstensi:
az k8s-extension create \
--name <extension-name> \
--extension-type Microsoft.virtualnodes \
--cluster-name <cluster-name> \
--resource-group <resource-group> \
--cluster-type managedClusters \
--configuration-settings replicaCount=1 # specifies number of virtual nodes - optional
Mengonfigurasi pengaturan ekstensi
Operasi buat dan perbarui mendukung pengaturan konfigurasi berikut.
| Pengaturan konfigurasi | Description |
|---|---|
replicaCount |
Jumlah simpul virtual. |
admissionControllerReplicaCount |
Jumlah pod pengontrol penerimaan. |
podAnnotations |
Anotasi ditambahkan ke pod infrastruktur sebagai peta kunci-nilai. |
nodeSelector |
Label yang memilih simpul AKS yang menghosting infrastruktur dan pod pengontrol penerimaan. |
tolerations |
Toleransi yang diterapkan pada pod pengontrol infrastruktur dan penerimaan. |
affinity |
Pengaturan afinitas tambahan digabungkan dengan aturan afinitas AKS yang diperlukan. |
zones |
Zona ketersediaan yang dibatasi titik koma tempat pod disebarkan. |
nodeLabels |
Label ditambahkan ke simpul virtual sebagai pasangan yang dipisahkan key=value koma. |
Label yang diizinkan kubernetes.io adalah:
beta.kubernetes.io/archbeta.kubernetes.io/instance-typebeta.kubernetes.io/osfailure-domain.beta.kubernetes.io/regionfailure-domain.beta.kubernetes.io/zonekubernetes.io/archkubernetes.io/hostnamekubernetes.io/osnode.kubernetes.io/instance-typetopology.kubernetes.io/regiontopology.kubernetes.io/zone
Verifikasi ekstensi:
az k8s-extension show \
--name <extension-name> \
--cluster-type managedClusters \
--cluster-name <cluster-name> \
--resource-group <resource-group>
Konfirmasikan provisioningState adalah Succeeded. Ini bisa tinggal Pending selama beberapa menit.
Verifikasi pod ekstensi berjalan di vn-system namespace :
kubectl get pods --namespace vn-system
Memperbarui ekstensi
az k8s-extension update --name <extension-name> --cluster-name <aks-cluster-name> --resource-group <aks-resource-group> --cluster-type managedClusters
Note
Parameter --auto-upgrade-mode mendukung none, patch, atau compatible. Untuk menyematkan versi ekstensi tertentu dengan menggunakan --version, atur --auto-upgrade-mode ke none.
akses Azure Container Registry
Untuk menarik gambar dari Azure Container Registry privat (ACR), gunakan identitas terkelola ekstensi atau rahasia penarikan gambar Kubernetes.
Gunakan identitas terkelola untuk ekstensi
Berikan peran AcrPull kepada identitas terkelola yang dibuat untuk ekstensi. Peran ini memberikan semua pod yang berjalan pada akses simpul virtual ekstensi untuk menarik gambar dari registri tanpa konfigurasi pod tambahan. Anda harus memiliki izin untuk membuat penetapan peran pada registri.
Dapatkan ID utama dari identitas terkelola ekstensi:
$extensionPrincipalId = az k8s-extension show --name <extension-name> --cluster-name <aks-cluster-name> --resource-group <aks-resource-group> --cluster-type managedClusters --query aksAssignedIdentity.principalId --output tsv
Dapatkan ID sumber daya registri kontainer:
$acrId = az acr show --name <acr-name> --resource-group <acr-resource-group> --query id --output tsv
Tetapkan AcrPull peran ke identitas terkelola ekstensi di cakupan registri:
az role assignment create --assignee-object-id $extensionPrincipalId --assignee-principal-type ServicePrincipal --role AcrPull --scope $acrId
Tunggu beberapa menit hingga penetapan peran disebarluaskan sebelum menyebarkan beban kerja yang menarik gambar dari registri.
Menggunakan rahasia penarikan gambar
Untuk petunjuknya, lihat Kubernetes Pull Secret untuk Autentikasi ACR.
Menyebarkan beban kerja ke Simpul Virtual v2
Jadwalkan pod pada simpul virtual menggunakan pemilih virtualization: virtualnode2 simpul dan virtual-kubelet.io/provider toleransi:
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo
spec:
replicas: 3
selector:
matchLabels:
app: demo
template:
metadata:
labels:
app: demo
spec:
containers:
- name: hello
image: mcr.microsoft.com/azuredocs/aci-helloworld
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: "1"
memory: 1Gi
nodeSelector:
virtualization: virtualnode2
kubernetes.io/os: linux
tolerations:
- key: virtual-kubelet.io/provider
operator: Exists
effect: NoSchedule
Simpan manifes sebagai demo.yaml, lalu terapkan.
kubectl apply -f demo.yaml
Verifikasi pod sedang berjalan.
kubectl get pods -l app=demo -o wide
Nonaktifkan Simpul Virtual v2
Peringatan
Saat Anda menonaktifkan ekstensi simpul virtual, kluster AKS terputus dari grup kontainer Azure Container Instances pencadangan. Untuk menghindari instans tanpa induk yang terus berjalan dan dikenakan biaya, hapus beban kerja apa pun yang berjalan pada simpul virtual sebelum Anda menonaktifkan ekstensi.
Hapus ekstensi dan bersihkan sumber daya simpul virtual.
az k8s-extension delete \
--name <extension-name> \
--cluster-name <cluster-name> \
--resource-group <resource-group> \
--cluster-type managedClusters
kubectl delete node <virtual-node-name>