Baca dalam bahasa Inggris

Bagikan melalui


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

Gambaran Umum

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.

Ketersediaan wilayah

Kluster privat tersedia di wilayah publik, Azure Government, dan Microsoft Azure yang dioperasikan oleh wilayah 21Vianet tempat AKS didukung.

Prasyarat

  • Azure CLI versi 2.28.0 atau yang lebih tinggi. Jalankan az --version untuk menemukan versi, dan jalankan az 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.

Batasan

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

Membuat kluster AKS privat

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

Menyambungkan ke kluster privat

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 .

  1. Konfigurasikan kubectl untuk terhubung ke kluster Kubernetes menggunakan perintah az 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>
    
  2. Verifikasi koneksi ke kluster Anda menggunakan kubectl get perintah . Perintah ini menampilkan daftar node kluster.

    kubectl get nodes
    

Menggunakan domain kustom

Jika Anda ingin mengonfigurasi domain kustom yang hanya dapat diselesaikan secara internal, lihat Menggunakan domain kustom.

Menonaktifkan FQDN publik

Menonaktifkan FQDN publik pada kluster baru

  • 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
    

Menonaktifkan FQDN publik pada kluster yang ada

  • 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
    

Mengonfigurasi zona DNS privat

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 penamaan private.<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 ke privatelink.<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> .

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']"
}

Membuat kluster AKS privat dengan zona DNS privat

  • 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
    

Membuat kluster AKS privat dengan zona DNS privat kustom atau subzone DNS privat

  • 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
    

Membuat kluster AKS privat dengan zona DNS privat kustom dan subdomain kustom

  • 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
    

Memperbarui kluster privat dari zona DNS privat ke publik

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 atau system ke none menggunakan az aks update perintah dengan bendera berikut:

    az aks update \
        --name <private-cluster-name> \
        --resource-group <private-cluster-resource-group> \
        --private-dns-zone none
    

Opsi untuk menyambungkan ke kluster privat

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:

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.

Peering virtual network

Untuk menggunakan peering jaringan virtual, Anda perlu menyiapkan tautan antara jaringan virtual dan zona DNS privat.

  1. Di portal Azure, navigasikan ke grup sumber daya simpul Anda dan pilih sumber daya zona DNS privat Anda.
  2. Di menu layanan, di bawah Manajemen DNS, pilih Tautan>Virtual Network Tambahkan.
  3. 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.
  4. Pilih Buat untuk membuat tautan jaringan virtual.
  5. Navigasi ke grup sumber daya yang berisi jaringan virtual kluster Anda dan pilih sumber daya jaringan virtual Anda.
  6. Di menu layanan, di bawah Pengaturan, pilih Tambahkan Peering>.
  7. Pada halaman Tambahkan peering , konfigurasikan pengaturan berikut:
    • Nama tautan peering: Masukkan nama untuk tautan peering.
    • Jaringan virtual: Pilih jaringan virtual VM.
  8. Pilih Tambahkan untuk membuat tautan peering.

Untuk informasi selengkapnya, lihat Peering jaringan virtual.

Hub dan spoke dengan DNS kustom

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.

Hub dan spoke kluster privat

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 versi 2022-07-01API . 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.

Menggunakan koneksi titik akhir privat

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.

Membuat sumber daya titik akhir privat

Buat sumber daya titik akhir privat di VNet Anda:

  1. Dari beranda portal Azure, pilih Buat sumber daya.
  2. Cari Titik Akhir Privat dan pilih Buat>Titik Akhir Privat.
  3. Pilih Buat.
  4. 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.
  5. 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.
  6. Pilih Berikutnya: Virtual Network dan konfigurasikan pengaturan berikut:
    • Jaringan
      • Jaringan virtual: Pilih jaringan virtual Anda.
      • Subnet: Pilih subnet Anda.
  7. Pilih Berikutnya: DNS>Berikutnya: Tag dan (opsional) menyiapkan nilai kunci sesuai kebutuhan.
  8. Pilih Berikutnya: Tinjau + buat>Buat.

Setelah sumber daya dibuat, rekam alamat IP privat titik akhir privat untuk digunakan di masa mendatang.

Membuat zona DNS privat

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.

  1. Di portal Azure, navigasikan ke grup sumber daya simpul Anda dan pilih sumber daya zona DNS privat Anda.
  2. 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).
  3. Dari beranda portal Azure, pilih Buat sumber daya.
  4. Cari Zona DNS Privat dan pilih Buat>zona DNS Privat.
  5. 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.
  6. Pilih Tinjau + buat>Buat.

Membuat A rekaman

Setelah zona DNS privat dibuat, buat A rekaman, yang mengaitkan titik akhir privat ke kluster privat:

  1. Buka zona DNS privat yang Anda buat di langkah-langkah sebelumnya.
  2. Di menu layanan, di bawah Manajemen DNS, pilih Tambahkan Himpunan>Catatan.
  3. 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.
  4. 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:

  1. Buka zona DNS privat yang Anda buat di langkah-langkah sebelumnya.
  2. Di menu layanan, di bawah Manajemen DNS, pilih Tautan>Virtual Network Tambahkan.
  3. 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.
  4. 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.

Langkah berikutnya

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