Membuat kluster Azure Kubernetes Service (AKS) privat
Artikel ini membantu Anda menyebarkan kluster AKS berbasis tautan privat. Jika Anda tertarik untuk membuat kluster AKS tanpa tautan atau terowongan privat yang diperlukan, lihat Membuat kluster Azure Kubernetes Service dengan Integrasi VNet API Server (Pratinjau).
Dalam kluster privat, sarana kontrol atau server API memiliki alamat IP internal yang didefinisikan dalam dokumen RFC1918 - Alokasi Alamat untuk Internet Privat. Dengan menggunakan kluster privat, Anda dapat memastikan lalu lintas jaringan antara server API dan kumpulan simpul Anda hanya tetap berada di jaringan privat.
Sarana kontrol atau server API berada dalam grup sumber daya Azure yang dikelola AKS, dan kluster atau kumpulan simpul Anda berada di grup sumber daya Anda. Server dan kluster atau kumpulan simpul dapat berkomunikasi satu sama lain melalui layanan Azure Private Link di jaringan virtual server API dan titik akhir privat yang terekspos pada subnet kluster AKS Anda.
Saat Anda menyediakan kluster AKS privat, AKS secara default membuat FQDN privat dengan zona DNS privat dan FQDN publik tambahan dengan catatan yang sesuai A
di DNS publik Azure. Simpul agen terus menggunakan A
catatan di zona DNS privat untuk menyelesaikan alamat IP privat titik akhir privat untuk komunikasi ke server API.
Kluster privat tersedia di wilayah publik, Azure Government, dan Microsoft Azure yang dioperasikan oleh wilayah 21Vianet tempat AKS didukung.
- Azure CLI versi 2.28.0 atau yang lebih tinggi. Jalankan
az --version
untuk menemukan versi, dan jalankanaz upgrade
untuk meningkatkan versi. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI. aks-preview
Ekstensi 0.5.29 atau lebih tinggi.- Jika menggunakan Azure Resource Manager (ARM) atau Azure REST API, versi AKS API harus 2021-05-01 atau lebih tinggi.
- Untuk menggunakan server DNS kustom, tambahkan alamat IP publik Azure 168.63.129.16 sebagai server DNS upstream di server DNS kustom, dan pastikan untuk menambahkan alamat IP publik ini sebagai server DNS pertama . Untuk informasi selengkapnya tentang alamat IP Azure, lihat Apa itu alamat IP 168.63.129.16?
- Zona DNS kluster harus menjadi apa yang Anda teruskan ke 168.63.129.16. Anda dapat menemukan informasi selengkapnya tentang nama zona di konfigurasi zona DNS layanan Azure.
- Kluster AKS yang ada yang diaktifkan dengan Integrasi VNet API Server dapat mengaktifkan mode kluster privat. Untuk informasi selengkapnya, lihat Mengaktifkan atau menonaktifkan mode kluster privat pada kluster yang ada dengan Integrasi VNet API Server.
Catatan
Kumpulan simpul Azure Linux sekarang tersedia secara umum (GA). Untuk mempelajari tentang manfaat dan langkah-langkah penyebaran, lihat Pengantar Host Kontainer Azure Linux untuk AKS.
- Rentang resmi IP tidak dapat diterapkan ke titik akhir server API privat, hanya berlaku untuk server API publik.
- Batasan layanan Azure Private Link berlaku untuk kluster privat.
- Tidak ada dukungan untuk Agen yang dihosting Microsoft Azure DevOps dengan kluster privat. Pertimbangkan untuk menggunakan agen yang dihost sendiri.
- Jika Anda perlu mengaktifkan Azure Container Registry untuk bekerja dengan kluster AKS privat, siapkan tautan privat untuk registri kontainer di jaringan virtual kluster atau siapkan peering antara jaringan virtual registri kontainer dan jaringan virtual kluster privat.
- Menghapus atau memodifikasi titik akhir privat di subnet pelanggan akan menyebabkan kluster berhenti berfungsi.
- Layanan Azure Private Link hanya didukung pada Azure Load Balancer Standar. Azure Load Balancer Dasar tidak didukung.
Buat grup sumber daya menggunakan
az group create
perintah . Anda juga dapat menggunakan grup sumber daya yang ada untuk kluster AKS Anda.az group create \ --name <private-cluster-resource-group> \ --location <location>
Buat kluster privat dengan jaringan dasar default menggunakan
az aks create
perintah dengan--enable-private-cluster
bendera .az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --generate-ssh-keys
Untuk mengelola kluster Kube, gunakan klien baris perintah Kube, kubectl. kubectl
sudah diinstal jika Anda menggunakan Azure Cloud Shell. Untuk menginstal kubectl
secara lokal, gunakan az aks install-cli
perintah .
Konfigurasikan
kubectl
untuk terhubung ke kluster Kubernetes menggunakan perintahaz aks get-credentials
. Perintah ini mengunduh informasi masuk dan mengonfigurasi CLI Kube untuk menggunakannya.az aks get-credentials --resource-group <private-cluster-resource-group> --name <private-cluster-name>
Verifikasi koneksi ke kluster Anda menggunakan
kubectl get
perintah . Perintah ini menampilkan daftar node kluster.kubectl get nodes
Jika Anda ingin mengonfigurasi domain kustom yang hanya dapat diselesaikan secara internal, lihat Menggunakan domain kustom.
Nonaktifkan FQDN publik saat membuat kluster AKS privat menggunakan
az aks create
perintah dengan--disable-public-fqdn
bendera .az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resourceID> \ --private-dns-zone <private-dns-zone-mode> \ --disable-public-fqdn \ --generate-ssh-keys
Nonaktifkan FQDN publik pada kluster AKS yang ada menggunakan
az aks update
perintah dengan--disable-public-fqdn
bendera .az aks update \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --disable-public-fqdn
Anda dapat mengonfigurasi zona DNS privat menggunakan parameter berikut:
system
: Ini adalah nilai default. Jika argumen dihilangkan--private-dns-zone
, AKS membuat zona DNS privat di grup sumber daya simpul.none
: Defaultnya adalah DNS publik. AKS tidak akan membuat zona DNS privat.CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID
: Ini mengharuskan Anda membuat zona DNS privat dalam format berikut untuk cloud global Azure:privatelink.<region>.azmk8s.io
atau<subzone>.privatelink.<region>.azmk8s.io
. Anda akan memerlukan ID sumber daya zona DNS privat untuk digunakan di masa mendatang. Anda juga memerlukan identitas atau perwakilan layanan yang ditetapkan pengguna dengan peran Kontributor Zona DNS Privat dan Kontributor Jaringan. Saat menyebarkan menggunakan integrasi VNet server API, zona DNS privat mendukung format penamaanprivate.<region>.azmk8s.io
atau<subzone>.private.<region>.azmk8s.io
. Anda tidak dapat mengubah atau menghapus sumber daya ini setelah membuat kluster, karena dapat menyebabkan masalah performa dan kegagalan peningkatan kluster.- Jika zona DNS privat berada dalam langganan yang berbeda dari kluster AKS, Anda perlu mendaftarkan
Microsoft.ContainerServices
penyedia Azure di kedua langganan. - Anda hanya dapat menggunakan
fqdn-subdomain
CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID
untuk menyediakan kemampuan subdomain keprivatelink.<region>.azmk8s.io
. - Jika kluster AKS Anda dikonfigurasi dengan perwakilan layanan Direktori Aktif, AKS tidak mendukung penggunaan identitas terkelola yang ditetapkan sistem dengan zona DNS privat kustom. Kluster harus menggunakan autentikasi identitas terkelola yang ditetapkan pengguna.
- Jika Anda menentukan
<subzone>
, ada batas 32 karakter untuk nama tersebut<subzone>
.
- Jika zona DNS privat berada dalam langganan yang berbeda dari kluster AKS, Anda perlu mendaftarkan
Catatan
Anda dapat mengonfigurasi CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID
menggunakan templat ARM atau Azure CLI. privateDNSZone
menerima zona resourceID
DNZ privat seperti yang ditunjukkan dalam contoh berikut:
properties.apiServerAccessProfile.privateDNSZone.
"apiServerAccessProfile": {
"enablePrivateCluster": true,
"privateDNSZone": "system|none|[resourceId(..., 'Microsoft.Network/privateDnsZones', 'privatelink.<region>.azmk8s.io']"
}
Buat kluster AKS privat dengan zona DNS privat menggunakan
az aks create
perintah dengan bendera berikut:az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resourceID> \ --private-dns-zone [system|none] \ --generate-ssh-keys
Buat kluster AKS privat dengan zona DNS privat kustom atau subzone menggunakan
az aks create
perintah dengan bendera berikut:# The custom private DNS zone name should be in the following format: "<subzone>.privatelink.<region>.azmk8s.io" az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resourceID> \ --private-dns-zone <custom private dns zone or custom private dns subzone resourceID> \ --generate-ssh-keys
Buat kluster AKS privat dengan zona DNS privat kustom dan subdomain menggunakan
az aks create
perintah dengan bendera berikut:# The custom private DNS zone name should be in one of the following formats: "privatelink.<region>.azmk8s.io" or "<subzone>.privatelink.<region>.azmk8s.io" az aks create \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --assign-identity <resourceID> \ --private-dns-zone <custom private dns zone resourceID> \ --fqdn-subdomain <subdomain> \ --generate-ssh-keys
Anda hanya dapat memperbarui dari byo
atau system
ke none
. Tidak ada kombinasi lain dari nilai pembaruan yang didukung. Sebelum memperbarui, pastikan Anda terhubung ke kluster privat.
Peringatan
Saat Anda memperbarui kluster privat dari byo
atau system
ke none
, simpul agen berubah untuk menggunakan FQDN publik. Dalam kluster AKS yang menggunakan Azure Virtual Machine Scale Sets, peningkatan gambar simpul dilakukan untuk memperbarui simpul Anda dengan FQDN publik.
Perbarui kluster privat dari
byo
atausystem
kenone
menggunakanaz aks update
perintah dengan bendera berikut:az aks update \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --private-dns-zone none
Titik akhir server API tidak memiliki alamat IP publik. Untuk mengelola server API, Anda perlu menggunakan VM yang memiliki akses ke Azure Virtual Network (VNet) kluster AKS. Ada beberapa opsi untuk membangun konektivitas jaringan ke kluster privat:
- Buat VM di VNet yang sama dengan kluster AKS menggunakan
az vm create
perintah dengan--vnet-name
bendera . - Gunakan VM di jaringan terpisah dan siapkan peering jaringan virtual.
- Gunakan koneksi Express Route atau VPN.
- Gunakan fitur AKS
command invoke
. - Gunakan koneksi titik akhir privat.
- Gunakan instans Cloud Shell yang disebarkan ke subnet yang terhubung ke server API untuk kluster.
Membuat VM di VNet yang sama dengan kluster AKS adalah opsi term mudah. Express Route dan VPN menambah biaya dan memerlukan kompleksitas jaringan tambahan. Peering jaringan virtual mengharuskan Anda merencanakan rentang CIDR jaringan Anda untuk memastikan tidak ada rentang yang tumpang tindih.
Untuk menggunakan peering jaringan virtual, Anda perlu menyiapkan tautan antara jaringan virtual dan zona DNS privat.
- Di portal Azure, navigasikan ke grup sumber daya simpul Anda dan pilih sumber daya zona DNS privat Anda.
- Di menu layanan, di bawah Manajemen DNS, pilih Tautan>Virtual Network Tambahkan.
- Pada halaman Tambahkan Tautan Jaringan Virtual, konfigurasikan pengaturan berikut:
- Nama tautan: Masukkan nama untuk tautan jaringan virtual.
- Virtual Network: Pilih jaringan virtual yang berisi VM.
- Pilih Buat untuk membuat tautan jaringan virtual.
- Navigasi ke grup sumber daya yang berisi jaringan virtual kluster Anda dan pilih sumber daya jaringan virtual Anda.
- Di menu layanan, di bawah Pengaturan, pilih Tambahkan Peering>.
- Pada halaman Tambahkan peering , konfigurasikan pengaturan berikut:
- Nama tautan peering: Masukkan nama untuk tautan peering.
- Jaringan virtual: Pilih jaringan virtual VM.
- Pilih Tambahkan untuk membuat tautan peering.
Untuk informasi selengkapnya, lihat Peering jaringan virtual.
Arsitektur hub dan spoke umumnya digunakan untuk menyebarkan jaringan di Azure. Dalam banyak penyebaran ini, pengaturan DNS di VNets spoke dikonfigurasi untuk mereferensikan penerus DNS pusat untuk memungkinkan resolusi DNS lokal dan berbasis Azure.
Saat menyebarkan kluster AKS ke lingkungan jaringan seperti itu, ada beberapa pertimbangan khusus:
- Saat kluster privat disediakan, titik akhir privat (1) dan zona DNS privat (2) dibuat di grup sumber daya yang dikelola kluster secara default. Kluster menggunakan
A
rekaman di zona privat untuk menyelesaikan IP titik akhir privat untuk komunikasi ke server API. - Zona DNS privat hanya ditautkan ke VNet tempat simpul kluster dilampirkan ke (3). Ini berarti bahwa titik akhir privat hanya dapat diselesaikan oleh host di VNet yang ditautkan. Dalam skenario di mana tidak ada DNS kustom yang dikonfigurasi pada VNet (default), ini berfungsi tanpa masalah sebagai titik host di 168.63.129.16 untuk DNS yang dapat menyelesaikan rekaman di zona DNS privat karena tautan.
- Dalam skenario di mana VNet yang berisi kluster Anda memiliki pengaturan DNS kustom (4), penyebaran kluster gagal kecuali zona DNS privat ditautkan ke VNet yang berisi pemecah masalah DNS kustom (5). Tautan ini dapat dibuat secara manual setelah zona privat dibuat selama penyediaan kluster atau melalui otomatisasi setelah mendeteksi pembuatan zona menggunakan mekanisme penyebaran berbasis peristiwa (misalnya, Azure Event Grid dan Azure Functions). Untuk menghindari kegagalan kluster selama penyebaran awal, kluster dapat disebarkan dengan ID sumber daya zona DNS privat. Ini hanya berfungsi dengan jenis
Microsoft.ContainerService/managedCluster
sumber daya dan versi2022-07-01
API . Menggunakan versi lama dengan templat ARM atau definisi sumber daya Bicep tidak didukung.
Catatan
Penerusan bersyarkat tidak mendukung subdomain.
Catatan
Jika Anda menggunakan bawa tabel rute Anda sendiri dengan kubenet dan bawa DNS Anda sendiri dengan kluster privat, pembuatan kluster akan gagal. Anda perlu mengaitkan RouteTable
dalam grup sumber daya simpul ke subnet setelah pembuatan kluster gagal membuat pembuatan berhasil.
Titik akhir privat dapat disiapkan sehingga VNet tidak perlu di-peering untuk berkomunikasi dengan kluster privat. Buat titik akhir privat baru di jaringan virtual yang berisi sumber daya yang mengkonsumsi, lalu buat tautan antara jaringan virtual Anda dan zona DNS privat baru di jaringan yang sama.
Penting
Jika jaringan virtual dikonfigurasi dengan server DNS kustom, DNS privat perlu disiapkan dengan tepat untuk lingkungan. Lihat dokumentasi resolusi nama jaringan virtual untuk detail selengkapnya.
Buat sumber daya titik akhir privat di VNet Anda:
- Dari beranda portal Azure, pilih Buat sumber daya.
- Cari Titik Akhir Privat dan pilih Buat>Titik Akhir Privat.
- Pilih Buat.
- Pada tab Dasar , konfigurasikan pengaturan berikut:
- Detail proyek
- Langganan: Pilih langganan tempat kluster privat Anda berada.
- Grup sumber daya: Pilih grup sumber daya yang berisi jaringan virtual Anda.
- Detail instans
- Nama: Masukkan nama untuk titik akhir privat Anda, seperti myPrivateEndpoint.
- Wilayah: Pilih wilayah yang sama dengan jaringan virtual Anda.
- Detail proyek
- Pilih Berikutnya: Sumber daya dan konfigurasikan pengaturan berikut:
- Metode koneksi: Pilih Sambungkan ke sumber daya Azure di direktori saya.
- Langganan: Pilih langganan tempat kluster privat Anda berada.
- Jenis sumber daya: Pilih Microsoft.ContainerService/managedClusters.
- Sumber Daya: Pilih kluster privat Anda.
- Sub-sumber daya target: Pilih manajemen.
- Pilih Berikutnya: Virtual Network dan konfigurasikan pengaturan berikut:
- Jaringan
- Jaringan virtual: Pilih jaringan virtual Anda.
- Subnet: Pilih subnet Anda.
- Jaringan
- Pilih Berikutnya: DNS>Berikutnya: Tag dan (opsional) menyiapkan nilai kunci sesuai kebutuhan.
- Pilih Berikutnya: Tinjau + buat>Buat.
Setelah sumber daya dibuat, rekam alamat IP privat titik akhir privat untuk digunakan di masa mendatang.
Setelah Anda membuat titik akhir privat, buat zona DNS privat baru dengan nama yang sama dengan zona DNS privat yang dibuat oleh kluster privat. Ingatlah untuk membuat zona DNS ini di VNet yang berisi sumber daya yang mengonsumsi.
- Di portal Azure, navigasikan ke grup sumber daya simpul Anda dan pilih sumber daya zona DNS privat Anda.
- Di menu layanan, di bawah Manajemen DNS, pilih Himpunan Catatan dan perhatikan hal berikut ini:
- Nama zona DNS privat, yang mengikuti pola
*.privatelink.<region>.azmk8s.io
. - Nama
A
catatan (tidak termasuk nama DNS privat). - Time-to-live (TTL).
- Nama zona DNS privat, yang mengikuti pola
- Dari beranda portal Azure, pilih Buat sumber daya.
- Cari Zona DNS Privat dan pilih Buat>zona DNS Privat.
- Pada tab Dasar , konfigurasikan pengaturan berikut:
- Detail proyek:
- Pilih Langganan Anda.
- Pilih Grup sumber daya tempat Anda membuat titik akhir privat.
- Detail instans
- Nama: Masukkan nama zona DNS yang diambil dari langkah-langkah sebelumnya.
- Wilayah default ke lokasi grup sumber daya Anda.
- Detail proyek:
- Pilih Tinjau + buat>Buat.
Setelah zona DNS privat dibuat, buat A
rekaman, yang mengaitkan titik akhir privat ke kluster privat:
- Buka zona DNS privat yang Anda buat di langkah-langkah sebelumnya.
- Di menu layanan, di bawah Manajemen DNS, pilih Tambahkan Himpunan>Catatan.
- Pada halaman Tambahkan kumpulan catatan, konfigurasikan pengaturan berikut ini:
- Nama: Masukkan nama yang diambil dari
A
rekaman di zona DNS kluster privat. - Jenis: Pilih A - Catatan alamat.
- TTL: Masukkan angka dari
A
rekaman di zona DNS kluster privat. - Unit TTL: Ubah nilai dropdown agar sesuai dengan yang ada di
A
rekaman dari zona DNS kluster privat. - Alamat IP: Masukkan alamat IP titik akhir privat yang Anda buat.
- Nama: Masukkan nama yang diambil dari
- Pilih Tambahkan untuk membuat
A
rekaman.
Penting
Saat membuat A
rekaman, hanya gunakan nama dan bukan nama domain yang sepenuhnya memenuhi syarat (FQDN).
A
Setelah rekaman dibuat, tautkan zona DNS privat ke jaringan virtual yang akan mengakses kluster privat:
- Buka zona DNS privat yang Anda buat di langkah-langkah sebelumnya.
- Di menu layanan, di bawah Manajemen DNS, pilih Tautan>Virtual Network Tambahkan.
- Pada halaman Tambahkan Tautan Jaringan Virtual, konfigurasikan pengaturan berikut:
- Nama tautan: Masukkan nama untuk tautan jaringan virtual Anda.
- Langganan: Pilih langganan tempat kluster privat Anda berada.
- Virtual Network: Pilih jaringan virtual kluster privat Anda.
- Pilih Buat untuk membuat tautan.
Mungkin perlu beberapa menit agar operasi selesai. Setelah tautan jaringan virtual dibuat, Anda dapat mengaksesnya dari tab Tautan Virtual Network yang Anda gunakan di langkah 2.
Peringatan
- Jika kluster privat dihentikan dan dimulai ulang, layanan tautan privat asli kluster privat dihapus dan dibuat ulang, yang merusak koneksi antara titik akhir privat Anda dan kluster privat. Untuk mengatasi masalah ini, hapus dan buat ulang titik akhir privat yang dibuat pengguna yang ditautkan ke kluster privat. Jika titik akhir privat yang dibuat ulang memiliki alamat IP baru, Anda juga perlu memperbarui catatan DNS.
- Jika Anda memperbarui catatan DNS di zona DNS privat, pastikan host yang anda coba sambungkan menggunakan catatan DNS yang diperbarui. Anda dapat memverifikasi ini menggunakan
nslookup
perintah . Jika Anda melihat pembaruan tidak tercermin dalam output, Anda mungkin perlu menghapus cache DNS di komputer Anda dan mencoba lagi.
Untuk praktik terbaik terkait, lihat Praktik terbaik untuk konektivitas dan keamanan jaringan di AKS.
Umpan balik Azure Kubernetes Service
Azure Kubernetes Service adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: