Membuat dan mengonfigurasi kluster Azure Kubernetes Services (AKS) untuk menggunakan simpul virtual pada portal Microsoft Azure
Simpul virtual memungkinkan komunikasi jaringan antara pod yang berjalan di kluster Azure Container Instances (ACI) dan Azure Kubernetes Service (AKS). Untuk menyediakan komunikasi ini, subnet jaringan virtual dibuat dan izin delegasi ditetapkan. Simpul virtual hanya berfungsi dengan kluster AKS yang dibuat menggunakan jaringan tingkat lanjut (Azure CNI). Kluster AKS dibuat dengan jaringan dasar (kubenet) secara default.
Artikel ini menunjukkan kepada Anda cara membuat jaringan virtual dan subnet, lalu menyebarkan kluster AKS yang menggunakan jaringan tingkat lanjut menggunakan portal Azure.
Catatan
Untuk gambaran umum ketersediaan dan batasan wilayah simpul virtual, lihat Menggunakan simpul virtual di AKS.
Anda memerlukan penyedia layanan ACI yang terdaftar di langganan Anda.
Periksa status pendaftaran penyedia ACI menggunakan
az provider list
perintah .az provider list --query "[?contains(namespace,'Microsoft.ContainerInstance')]" -o table
Contoh output berikut menunjukkan penyedia Microsoft.ContainerInstance Terdaftar:
Namespace RegistrationState RegistrationPolicy --------------------------- ------------------- -------------------- Microsoft.ContainerInstance Registered RegistrationRequired
Jika penyedia NotRegistered, daftarkan menggunakan
az provider register
perintah .az provider register --namespace Microsoft.ContainerInstance
- Navigasikan ke halaman beranda portal Azure.
- Pilih Buat Kontainer sumber daya>.
- Pada sumber daya Azure Kubernetes Service (AKS), pilih Buat.
- Pada halaman Dasar , konfigurasikan opsi berikut:
- Detail proyek: Pilih langganan Azure, lalu pilih atau buat grup sumber daya Azure, seperti myResourceGroup.
- Detail kluster: Masukkan nama kluster Kubernetes, seperti myAKSCluster. Pilih wilayah dan versi Kubernetes untuk kluster AKS.
- Pilih Berikutnya: Kumpulan simpul dan centang *Aktifkan simpul virtual.
- Pilih Tinjau + buat.
- Setelah validasi selesai, pilih Buat.
Secara default, proses ini membuat identitas kluster terkelola, yang digunakan untuk komunikasi dan integrasi kluster dengan layanan Azure lainnya. Untuk informasi selengkapnya, lihat Menggunakan identitas terkelola. Anda juga dapat menggunakan perwakilan layanan sebagai identitas kluster Anda.
Proses ini mengonfigurasi kluster untuk jaringan tingkat lanjut dan simpul virtual untuk menggunakan subnet jaringan virtual Azure mereka sendiri. Subnet memiliki izin yang didelegasikan untuk menyambungkan sumber daya Azure antara kluster AKS. Jika Anda belum memiliki subnet yang didelegasikan, portal Azure membuat dan mengonfigurasi jaringan virtual Azure dan subnet dengan simpul virtual.
Azure Cloud Shell adalah shell interaktif gratis yang dapat Anda gunakan untuk menjalankan langkah-langkah dalam artikel ini. Shell ini memiliki alat Azure umum yang telah dipasang sebelumnya dan dikonfigurasi untuk digunakan dengan akun Anda. Untuk mengelola kluster Kubernetes, gunakan kubectl, klien baris-perintah Kubernetes. Klien kubectl
adalah bawaan dalam Azure Cloud Shell.
Konfigurasikan
kubectl
untuk terhubung ke kluster Kubernetes menggunakan perintahaz aks get-credentials
. Contoh berikut mendapatkan info masuk untuk nama kluster myAKSCluster dalam grup sumber daya bernama myResourceGroup:az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Verifikasi koneksi ke kluster Anda menggunakan
kubectl get nodes
.kubectl get nodes
Contoh output berikut menunjukkan simpul VM tunggal yang dibuat dan simpul Linux virtual bernama virtual-node-aci-linux:
NAME STATUS ROLES AGE VERSION virtual-node-aci-linux Ready agent 28m v1.11.2 aks-agentpool-14693408-0 Ready agent 32m v1.11.2
Di Azure Cloud Shell, buat file bernama
virtual-node.yaml
dan salin di YAML berikut:apiVersion: apps/v1 kind: Deployment metadata: name: aci-helloworld spec: replicas: 1 selector: matchLabels: app: aci-helloworld template: metadata: labels: app: aci-helloworld spec: containers: - name: aci-helloworld image: mcr.microsoft.com/azuredocs/aci-helloworld ports: - containerPort: 80 nodeSelector: kubernetes.io/role: agent beta.kubernetes.io/os: linux type: virtual-kubelet tolerations: - key: virtual-kubelet.io/provider operator: Exists
YAML mendefinisikan nodeSelector dan toleration, yang memungkinkan pod dijadwalkan pada simpul virtual. Pod ini diberi alamat IP internal dari subnet jaringan virtual Azure yang didelegasikan untuk digunakan dengan simpul virtual.
Jalankan aplikasi menggunakan
kubectl apply
perintah .kubectl apply -f virtual-node.yaml
Lihat pod yang dijadwalkan pada simpul menggunakan
kubectl get pods
perintah dengan-o wide
argumen .kubectl get pods -o wide
Contoh output berikut menunjukkan pod yang dijadwalkan
virtual-node-helloworld
pada simpulvirtual-node-linux
.NAME READY STATUS RESTARTS AGE IP NODE virtual-node-helloworld-9b55975f-bnmfl 1/1 Running 0 4m 10.241.0.4 virtual-node-aci-linux
Catatan
Jika Anda menggunakan gambar yang tersimpan di Azure Container Registry, konfigurasikan dan gunakan rahasia Kube. Batasan simpul virtual adalah Anda tidak dapat menggunakan autentikasi perwakilan layanan Microsoft Entra terintegrasi. Jika Anda tidak menggunakan rahasia, pod yang dijadwalkan pada simpul virtual akan gagal memulai dan melaporkan kesalahan HTTP response status code 400 error code "InaccessibleImage"
.
Untuk menguji pod yang berjalan pada simpul virtual, telusuri ke aplikasi demo dengan klien web. Pod diberi alamat IP internal, sehingga Anda dapat dengan mudah menguji konektivitas dari pod lain pada kluster AKS.
Buat pod pengujian dan lampirkan sesi terminal ke dalamnya menggunakan perintah berikut
kubectl run
.kubectl run -it --rm virtual-node-test --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
Instal
curl
di pod menggunakan perintah berikutapt-get
.apt-get update && apt-get install -y curl
Akses alamat pod Anda menggunakan perintah berikut
curl
dan berikan alamat IP internal Anda.curl -L http://10.241.0.4
Contoh output ringkas berikut menunjukkan aplikasi demo.
<html> <head> <title>Welcome to Azure Container Instances!</title> </head> [...]
Tutup sesi terminal ke pod pengujian Anda dengan
exit
, yang juga menghapus pod.exit
Dalam artikel ini, Anda menjadwalkan pod pada simpul virtual dan menetapkan alamat IP internal privat. Jika mau, Anda dapat membuat penyebaran layanan dan merutekan lalu lintas ke pod Melalui load balancer atau pengontrol ingress. Untuk informasi selengkapnya, lihat Membuat ingress controller dasar di AKS.
Simpul virtual merupakan komponen solusi penskalaan di AKS. Untuk informasi selengkapnya tentang solusi penskalaan, lihat artikel berikut ini:
Umpan balik Azure Kubernetes Service
Azure Kubernetes Service adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: