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'
Daftarkan
EnableAPIServerVnetIntegrationPreview
bendera fitur menggunakanaz feature register
perintah .az feature register --namespace "Microsoft.ContainerService" --name "EnableAPIServerVnetIntegrationPreview"
Dibutuhkan beberapa menit agar status menampilkan Terdaftar.
Verifikasi status pendaftaran menggunakan
az feature show
perintah :az feature show --namespace "Microsoft.ContainerService" --name "EnableAPIServerVnetIntegrationPreview"
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
- Buat grup sumber daya menggunakan
az group create
perintah .
az group create --location <location> --name <resource-group>
Membuat jaringan virtual
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
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
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
Buat identitas terkelola menggunakan
az identity create
perintah .az identity create --resource-group <resource-group> --name <managed-identity-name> --location <location>
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>
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 menggunakanaz aks get-credentials
perintah .az aks get-credentials --resource-group <resource-group> --name <cluster-name>
Aturan keamanan NSG
Semua lalu lintas dalam VNet diizinkan secara default. Tetapi jika Anda telah menambahkan aturan NSG untuk membatasi lalu lintas antara subnet yang berbeda, pastikan bahwa aturan keamanan NSG mengizinkan jenis komunikasi berikut:
Tujuan | Sumber | Protokol | Port | Menggunakan |
---|---|---|---|---|
APIServer Subnet CIDR | Subnet Kluster | TCP | 443 dan 4443 | Diperlukan untuk mengaktifkan komunikasi antara Node dan server API. |
APIServer Subnet CIDR | Penyeimbang Beban Azure | TCP | 9988 | Diperlukan untuk mengaktifkan komunikasi antara Azure Load Balancer dan server API. Anda juga dapat mengaktifkan semua komunikatios antara Azure Load Balancer dan CIDR Subnet API Server. |
Langkah berikutnya
Untuk praktik terbaik terkait, lihat Praktik terbaik untuk konektivitas dan keamanan jaringan di AKS.
Azure Kubernetes Service