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.

Sebelum Anda mulai

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
    

Membuat kluster AKS

  1. Navigasikan ke halaman beranda portal Azure.
  2. Pilih Buat Kontainer sumber daya>.
  3. Pada sumber daya Azure Kubernetes Service (AKS), pilih Buat.
  4. 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.
  5. Pilih Berikutnya: Kumpulan simpul dan centang *Aktifkan simpul virtual. Screenshot that shows creating a cluster with virtual nodes enabled on the Azure portal. The option 'Enable virtual nodes' is highlighted.
  6. Pilih Tinjau + buat.
  7. 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.

Menyambungkan ke kluster

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.

  1. Konfigurasikan kubectl untuk terhubung ke kluster Kubernetes menggunakan perintah az 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
    
  2. 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
    

Sebarkan aplikasi contoh

  1. 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.

  2. Jalankan aplikasi menggunakan kubectl apply perintah .

    kubectl apply -f virtual-node.yaml
    
  3. 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 simpul virtual-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".

Menguji pod simpul virtual

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.

  1. 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
    
  2. Instal curl di pod menggunakan perintah berikut apt-get .

    apt-get update && apt-get install -y curl
    
  3. 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>
    [...]
    
  4. Tutup sesi terminal ke pod pengujian Anda dengan exit, yang juga menghapus pod.

    exit
    

Langkah berikutnya

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: