Bagikan melalui


Membuat kluster Azure Kubernetes Service dengan Integrasi VNet API Server (Pratinjau)

Kluster Azure Kubernetes Service (AKS) yang dikonfigurasi dengan API Server VNet Integration memproyeksikan titik akhir server API langsung ke subnet yang didelegasikan di VNet tempat AKS disebarkan. Integrasi VNet API Server memungkinkan komunikasi jaringan antara server API dan node kluster tanpa memerlukan tautan atau terowongan privat. Server API tersedia di belakang VIP load balancer internal di subnet yang didelegasikan, yang dikonfigurasi simpul untuk digunakan. Dengan menggunakan API Server VNet Integration, Anda dapat memastikan lalu lintas jaringan antara server API dan kumpulan node Anda tetap berada di jaringan pribadi saja.

Konektivitas server API

Sarana kontrol atau server API berada dalam langganan Azure yang dikelola AKS. Kluster atau kumpulan simpul Anda ada di langganan Azure Anda. Server dan komputer virtual yang membentuk node kluster dapat berkomunikasi satu sama lain melalui API server VIP dan IP pod yang diproyeksikan ke dalam subnet yang didelegasikan.

Integrasi VNet API Server didukung untuk kluster publik atau privat. Anda dapat menambahkan atau menghapus akses publik setelah provisi kluster. Tidak seperti kluster terintegrasi non-VNet, simpul agen selalu berkomunikasi langsung dengan alamat IP privat IP penyeimbang muatan internal (ILB) server API tanpa menggunakan DNS. Semua simpul ke lalu lintas server API disimpan di jaringan privat, dan tidak ada terowongan yang diperlukan untuk api server ke konektivitas node. Klien di luar kluster yang perlu berkomunikasi dengan server API dapat melakukannya secara normal jika akses jaringan publik diaktifkan. Jika akses jaringan publik dinonaktifkan, Anda harus mengikuti metodologi penyiapan DNS privat yang sama dengan kluster privat standar.

Ketersediaan wilayah

Integrasi VNet API Server tersedia di semua wilayah Azure global.

Prasyarat

  • Azure CLI dengan ekstensi pratinjau-aks 0.5.97 atau yang lebih baru.
  • Jika menggunakan ARM atau REST API, versi AKS API harus 2022-04-02-preview atau lebih baru.

Menginstal ekstensi Azure CLI pratinjau aks

Penting

Fitur pratinjau AKS tersedia berdasarkan layanan mandiri. Pratinjau disediakan "apa adanya" dan "sebagaimana tersedia," dan mereka dikecualikan dari perjanjian tingkat layanan dan garansi terbatas. Pratinjau AKS sebagian dicakup oleh dukungan pelanggan berdasarkan upaya terbaik. Dengan demikian, fitur-fitur ini tidak dimaksudkan untuk penggunaan produksi. Untuk informasi lebih lanjut, lihat artikel dukungan berikut ini:

  • Instal ekstensi aks-preview menggunakan az extension add perintah .

    az extension add --name aks-preview
    
  • Perbarui ke versi terbaru ekstensi yang dirilis menggunakan az extension update perintah .

    az extension update --name aks-preview
    

Daftarkan bendera fitur 'EnableAPIServerVnetIntegrationPreview'

  1. Daftarkan EnableAPIServerVnetIntegrationPreview bendera fitur menggunakan az feature register perintah .

    az feature register --namespace "Microsoft.ContainerService" --name "EnableAPIServerVnetIntegrationPreview"
    

    Dibutuhkan beberapa menit agar status menampilkan Terdaftar.

  2. Verifikasi status pendaftaran menggunakan az feature show perintah :

    az feature show --namespace "Microsoft.ContainerService" --name "EnableAPIServerVnetIntegrationPreview"
    
  3. Saat status mencerminkan Terdaftar, refresh pendaftaran penyedia sumber daya Microsoft.ContainerService menggunakan az provider register perintah .

    az provider register --namespace Microsoft.ContainerService
    

Membuat kluster AKS dengan Integrasi VNet Server API menggunakan VNet terkelola

Anda dapat mengonfigurasi kluster AKS dengan Integrasi VNet API Server di VNet terkelola atau mode VNet bawa sendiri. Anda dapat membuatnya sebagai kluster publik (dengan akses server API yang tersedia melalui IP publik) atau kluster privat (di mana server API hanya dapat diakses melalui konektivitas VNet privat). Anda juga dapat beralih antara status publik dan privat tanpa menyebarkan ulang kluster Anda.

Buat grup sumber daya

  • Buat grup sumber daya menggunakan az group create perintah .

    az group create --location westus2 --name <resource-group>
    

Menyebarkan kluster publik

  • Sebarkan kluster AKS publik dengan integrasi API Server VNet untuk VNet terkelola az aks create menggunakan perintah dengan --enable-api-server-vnet-integration bendera .

    az aks create --name <cluster-name> \
        --resource-group <resource-group> \
        --location <location> \
        --network-plugin azure \
        --enable-apiserver-vnet-integration \
        --generate-ssh-keys
    

Menyebarkan kluster privat

  • Sebarkan kluster AKS privat dengan integrasi API Server VNet untuk VNet terkelola menggunakan az aks create perintah dengan --enable-api-server-vnet-integration bendera dan --enable-private-cluster .

    az aks create --name <cluster-name> \
        --resource-group <resource-group> \
        --location <location> \
        --network-plugin azure \
        --enable-private-cluster \
        --enable-apiserver-vnet-integration \
        --generate-ssh-keys
    

Membuat kluster AKS privat dengan Integrasi VNet API Server menggunakan VNet bawa sendiri

Saat menggunakan VNet bawa sendiri, Anda harus membuat dan mendelegasikan subnet server API ke Microsoft.ContainerService/managedClusters, yang memberikan izin layanan AKS untuk menyuntikkan pod server API dan load balancer internal ke subnet tersebut. Anda tidak dapat menggunakan subnet untuk beban kerja lain, tetapi Anda dapat menggunakannya untuk beberapa kluster AKS yang terletak di jaringan virtual yang sama. Ukuran subnet server API minimum yang didukung adalah /28.

Identitas kluster memerlukan izin ke subnet server API dan subnet simpul. Kurangnya izin di subnet server API dapat menyebabkan kegagalan provisi.

Peringatan

Kluster AKS mencadangkan setidaknya 9 IP di ruang alamat subnet. Kehabisan alamat IP dapat mencegah penskalaan server API dan menyebabkan pemadaman server API.

Buat grup sumber daya

az group create --location <location> --name <resource-group>

Membuat jaringan virtual

  1. Buat jaringan virtual menggunakan az network vnet create perintah .

    az network vnet create --name <vnet-name> \
    --resource-group <resource-group> \
    --location <location> \
    --address-prefixes 172.19.0.0/16
    
  2. Buat subnet server API menggunakan az network vnet subnet create perintah .

    az network vnet subnet create --resource-group <resource-group> \
    --vnet-name <vnet-name> \
    --name <apiserver-subnet-name> \
    --delegations Microsoft.ContainerService/managedClusters \
    --address-prefixes 172.19.0.0/28
    
  3. Buat subnet kluster menggunakan az network vnet subnet create perintah .

    az network vnet subnet create --resource-group <resource-group> \
    --vnet-name <vnet-name> \
    --name <cluster-subnet-name> \
    --address-prefixes 172.19.1.0/24
    

Membuat identitas terkelola dan memberinya izin di jaringan virtual

  1. Buat identitas terkelola menggunakan az identity create perintah .

    az identity create --resource-group <resource-group> --name <managed-identity-name> --location <location>
    
  2. Tetapkan peran Kontributor Jaringan ke subnet server API menggunakan az role assignment create perintah .

    az role assignment create --scope <apiserver-subnet-resource-id> \
    --role "Network Contributor" \
    --assignee <managed-identity-client-id>
    
  3. Tetapkan peran Kontributor Jaringan ke subnet kluster menggunakan az role assignment create perintah .

    az role assignment create --scope <cluster-subnet-resource-id> \
    --role "Network Contributor" \
    --assignee <managed-identity-client-id>
    

Menyebarkan kluster publik

  • Sebarkan kluster AKS publik dengan integrasi API Server VNet menggunakan az aks create perintah dengan --enable-api-server-vnet-integration bendera .

    az aks create --name <cluster-name> \
        --resource-group <resource-group> \
        --location <location> \
        --network-plugin azure \
        --enable-apiserver-vnet-integration \
        --vnet-subnet-id <cluster-subnet-resource-id> \
        --apiserver-subnet-id <apiserver-subnet-resource-id> \
        --assign-identity <managed-identity-resource-id> \
        --generate-ssh-keys
    

Menyebarkan kluster privat

  • Sebarkan kluster AKS privat dengan integrasi API Server VNet menggunakan az aks create perintah dengan --enable-api-server-vnet-integration bendera dan --enable-private-cluster .

    az aks create --name <cluster-name> \
    --resource-group <resource-group> \
    --location <location> \
    --network-plugin azure \
    --enable-private-cluster \
    --enable-apiserver-vnet-integration \
    --vnet-subnet-id <cluster-subnet-resource-id> \
    --apiserver-subnet-id <apiserver-subnet-resource-id> \
    --assign-identity <managed-identity-resource-id> \
    --generate-ssh-keys
    

Mengonversi kluster AKS yang ada ke integrasi API Server VNet

Anda dapat mengonversi kluster AKS publik/privat yang ada ke kluster Integrasi VNet API Server dengan menyediakan subnet server API yang memenuhi persyaratan yang tercantum sebelumnya. Persyaratan ini meliputi: dalam VNet yang sama dengan node kluster, izin yang diberikan untuk identitas kluster AKS, tidak digunakan oleh sumber daya lain seperti titik akhir privat, dan ukuran setidaknya /28. Mengonversi kluster Anda adalah migrasi satu arah. Kluster tidak dapat menonaktifkan Integrasi VNet API Server setelah diaktifkan.

Peningkatan ini melakukan peningkatan versi node-image pada semua kumpulan simpul dan memulai ulang semua beban kerja saat mereka menjalani peningkatan gambar bergulir.

Peringatan

Mengonversi kluster ke Integrasi VNet API Server menghasilkan perubahan alamat IP API Server, meskipun nama host tetap sama. Jika alamat IP server API telah dikonfigurasi dalam firewall atau aturan grup keamanan jaringan apa pun, aturan tersebut perlu diperbarui.

  • Perbarui kluster Anda ke Integrasi VNet API Server menggunakan az aks update perintah dengan --enable-apiserver-vnet-integration bendera .

    az aks update --name <cluster-name> \
    --resource-group <resource-group> \
    --enable-apiserver-vnet-integration \
    --apiserver-subnet-id <apiserver-subnet-resource-id>
    

Mengaktifkan atau menonaktifkan mode kluster privat di kluster yang ada dengan Integrasi API Server VNet

Kluster AKS yang dikonfigurasi dengan Integrasi API Server VNet dapat mengaktifkan atau menonaktifkan akses jarignan/mode kluster privat tanpa menyebar ulang kluster. Nama host server API tidak berubah, tetapi entri DNS publik dimodifikasi atau dihapus jika perlu.

Catatan

--disable-private-cluster saat ini sedang dalam pratinjau. Untuk informasi selengkapnya, lihat Tingkat referensi dan dukungan.

Mengaktifkan mode kluster privat

  • Aktifkan mode kluster privat menggunakan az aks update perintah dengan --enable-private-cluster bendera .

    az aks update --name <cluster-name> \
    --resource-group <resource-group> \
    --enable-private-cluster
    

Menonaktifkan mode kluster privat

  • Nonaktifkan mode kluster privat menggunakan az aks update perintah dengan --disable-private-cluster bendera .

    az aks update --name <cluster-name> \
    --resource-group <resource-group> \
    --disable-private-cluster
    

Sambungkan ke kluster menggunakan kubectl

  • Konfigurasikan kubectl untuk menyambungkan ke kluster Anda menggunakan az aks get-credentials perintah .

    az aks get-credentials --resource-group <resource-group> --name <cluster-name>
    

Langkah berikutnya

Untuk praktik terbaik terkait, lihat Praktik terbaik untuk konektivitas dan keamanan jaringan di AKS.