Membatasi lalu lintas keluar dari Kluster Big Data SQL Server 2019 di kluster privat Azure Kubernetes Service (AKS)
Penting
Add-on Kluster Big Data Microsoft SQL Server 2019 akan dihentikan. Dukungan untuk SQL Server 2019 Kluster Big Data akan berakhir pada 28 Februari 2025. Semua pengguna SQL Server 2019 yang ada dengan Jaminan Perangkat Lunak akan didukung sepenuhnya pada platform dan perangkat lunak akan terus dipertahankan melalui pembaruan kumulatif SQL Server hingga saat itu. Untuk informasi selengkapnya, lihat posting blog pengumuman dan Opsi big data di platform Microsoft SQL Server.
Anda dapat membatasi lalu lintas keluar dari Kluster Big Data dengan Azure Kubernetes Service (AKS). Layanan ini menyediakan Load Balancer SKU standar. Ini disiapkan dan digunakan untuk keluar secara default. Sekarang, pengaturan default mungkin tidak memenuhi semua skenario dan persyaratan. Misalnya, jika IP publik tidak diizinkan atau hop tambahan diperlukan untuk keluar. Anda dapat menentukan tabel rute yang ditentukan pengguna (UDR) jika kluster melarang IP publik dan berada di belakang appliance virtual jaringan (NVA).
Kluster AKS memiliki akses internet keluar (keluar) yang tidak dibatasi. Ini untuk tujuan manajemen dan operasional. Simpul pekerja dalam kluster AKS perlu mengakses port tertentu dan nama domain yang sepenuhnya memenuhi syarat (FQDN). Berikut ini adalah contohnya:
- Ketika kluster perlu menarik gambar kontainer sistem dasar dari Microsoft Container Registry (MCR) selama pembaruan keamanan OS simpul pekerja.
- Ketika simpul pekerja AKS yang diaktifkan GPU perlu mengakses titik akhir dari Nvidia untuk menginstal driver.
- Saat pelanggan menggunakan AKS berfungsi bersama dengan layanan Azure, seperti kebijakan Azure untuk kepatuhan tingkat perusahaan, Azure Monitoring (dengan wawasan kontainer).
- Saat Dev Space diaktifkan, dan skenario serupa lainnya.
Catatan
Saat Anda menyebarkan kluster big data (BDC) di kluster privat Azure Kubernetes Service (AKS), tidak ada dependensi masuk kecuali yang disebutkan dalam artikel ini. Anda dapat menemukan semua dependensi keluar pada lalu lintas keluar kontrol untuk node kluster di Azure Kubernetes Service (AKS) .
Artikel ini menjelaskan cara menyebarkan BDC di kluster privat AKS dengan jaringan tingkat lanjut dan UDR. Ini juga mengeksplorasi integrasi lebih lanjut BDC dengan lingkungan jaringan tingkat perusahaan.
Cara membatasi lalu lintas keluar dengan firewall Azure
Azure Firewall menyediakan tag Azure Kubernetes Service (AzureKubernetesService)
FQDN untuk menyederhanakan konfigurasi.
Untuk informasi lengkap tentang tag FQDN, kunjungi Membatasi lalu lintas keluar menggunakan firewall Azure.
Gambar berikut menunjukkan bagaimana lalu lintas dibatasi pada kluster privat AKS.
Kembangkan arsitektur dasar untuk Kluster Big Data dengan Azure Firewall:
- Membuat grup sumber daya & VNet
- Membuat &menyiapkan firewall Azure
- Membuat tabel rute yang ditentukan pengguna
- Menyiapkan aturan firewall
- Membuat perwakilan layanan (SP)
- Membuat kluster privat AKS
- Membuat profil penyebaran BDC
- Menyebarkan BDC
Membuat grup sumber daya dan VNet
Tentukan sekumpulan variabel lingkungan untuk membuat sumber daya.
export REGION_NAME=<region> export RESOURCE_GROUP=private-bdc-aksudr-rg export SUBNET_NAME=aks-subnet export VNET_NAME=bdc-vnet export AKS_NAME=bdcaksprivatecluster
Membuat grup sumber daya
az group create -n $RESOURCE_GROUP -l $REGION_NAME
Membuat VNET
az network vnet create \ --resource-group $RESOURCE_GROUP \ --location $REGION_NAME \ --name $VNET_NAME \ --address-prefixes 10.0.0.0/8 \ --subnet-name $SUBNET_NAME \ --subnet-prefix 10.1.0.0/16 SUBNET_ID=$(az network vnet subnet show \ --resource-group $RESOURCE_GROUP \ --vnet-name $VNET_NAME \ --name $SUBNET_NAME \ --query id -o tsv)
Membuat dan menyiapkan Azure Firewall
Tentukan sekumpulan variabel lingkungan untuk membuat sumber daya.
export FWNAME=bdcaksazfw export FWPUBIP=$FWNAME-ip export FWIPCONFIG_NAME=$FWNAME-config az extension add --name azure-firewall
Membuat subnet khusus untuk firewall
Catatan
Anda tidak dapat mengubah nama firewall setelah pembuatan
az network vnet subnet create \ --resource-group $RESOURCE_GROUP \ --vnet-name $VNET_NAME \ --name AzureFirewallSubnet \ --address-prefix 10.3.0.0/24 az network firewall create -g $RESOURCE_GROUP -n $FWNAME -l $REGION_NAME --enable-dns-proxy true az network public-ip create -g $RESOURCE_GROUP -n $FWPUBIP -l $REGION_NAME --sku "Standard" az network firewall ip-config create -g $RESOURCE_GROUP -f $FWNAME -n $FWIPCONFIG_NAME --public-ip-address $FWPUBIP --vnet-name $VNET_NAME
Azure secara otomatis merutekan traffic antara subnet Azure, jaringan virtual, dan jaringan lokal.
Cara membuat tabel rute yang ditentukan pengguna
Anda dapat membuat tabel UDR dengan lompatan ke Azure Firewall.
export SUBID= <your Azure subscription ID>
export FWROUTE_TABLE_NAME=bdcaks-rt
export FWROUTE_NAME=bdcaksroute
export FWROUTE_NAME_INTERNET=bdcaksrouteinet
export FWPUBLIC_IP=$(az network public-ip show -g $RESOURCE_GROUP -n $FWPUBIP --query "ipAddress" -o tsv)
export FWPRIVATE_IP=$(az network firewall show -g $RESOURCE_GROUP -n $FWNAME --query "ipConfigurations[0].privateIpAddress" -o tsv)
# Create UDR and add a route for Azure Firewall
az network route-table create -g $RESOURCE_GROUP --name $FWROUTE_TABLE_NAME
az network route-table route create -g $RESOURCE_GROUP --name $FWROUTE_NAME --route-table-name $FWROUTE_TABLE_NAME --address-prefix 0.0.0.0/0 --next-hop-type VirtualAppliance --next-hop-ip-address $FWPRIVATE_IP --subscription $SUBID
az network route-table route create -g $RESOURCE_GROUP --name $FWROUTE_NAME_INTERNET --route-table-name $FWROUTE_TABLE_NAME --address-prefix $FWPUBLIC_IP/32 --next-hop-type Internet
Cara mengatur aturan firewall
# Add FW Network Rules
az network firewall network-rule create -g $RESOURCE_GROUP -f $FWNAME --collection-name 'aksfwnr' -n 'apiudp' --protocols 'UDP' --source-addresses '*' --destination-addresses "AzureCloud.$REGION_NAME" --destination-ports 1194 --action allow --priority 100
az network firewall network-rule create -g $RESOURCE_GROUP -f $FWNAME --collection-name 'aksfwnr' -n 'apitcp' --protocols 'TCP' --source-addresses '*' --destination-addresses "AzureCloud.$REGION_NAME" --destination-ports 9000
az network firewall network-rule create -g $RESOURCE_GROUP -f $FWNAME --collection-name 'aksfwnr' -n 'time' --protocols 'UDP' --source-addresses '*' --destination-fqdns 'ntp.ubuntu.com' --destination-ports 123
# Add FW Application Rules
az network firewall application-rule create -g $RESOURCE_GROUP -f $FWNAME --collection-name 'aksfwar' -n 'fqdn' --source-addresses '*' --protocols 'http=80' 'https=443' --fqdn-tags "AzureKubernetesService" --action allow --priority 100
Anda dapat mengaitkan UDR dengan kluster AKS tempat Anda sebelumnya menyebarkan BDC, menggunakan perintah berikut:
az network vnet subnet update -g $RESOURCE_GROUP --vnet-name $VNET_NAME --name $SUBNET_NAME --route-table $FWROUTE_TABLE_NAME
Membuat & mengonfigurasi perwakilan layanan (SP)
Dalam langkah ini, Anda perlu membuat perwakilan layanan dan menetapkan izin ke jaringan virtual.
Lihat contoh berikut:
# Create SP and Assign Permission to Virtual Network
az ad sp create-for-rbac -n "bdcaks-sp"
APPID=<your service principal ID >
PASSWORD=< your service principal password >
VNETID=$(az network vnet show -g $RESOURCE_GROUP --name $VNET_NAME --query id -o tsv)
# Assign SP Permission to VNET
az role assignment create --assignee $APPID --scope $VNETID --role "Network Contributor"
RTID=$(az network route-table show -g $RESOURCE_GROUP -n $FWROUTE_TABLE_NAME --query id -o tsv)
az role assignment create --assignee $APPID --scope $RTID --role "Network Contributor"
Membuat kluster AKS
Anda sekarang dapat membuat kluster AKS dengan userDefinedRouting
sebagai jenis keluar.
az aks create \
--resource-group $RESOURCE_GROUP \
--location $REGION_NAME \
--name $AKS_NAME \
--load-balancer-sku standard \
--outbound-type userDefinedRouting \
--enable-private-cluster \
--network-plugin azure \
--vnet-subnet-id $SUBNET_ID \
--docker-bridge-address 172.17.0.1/16 \
--dns-service-ip 10.2.0.10 \
--service-cidr 10.2.0.0/24 \
--service-principal $APPID \
--client-secret $PASSWORD \
--node-vm-size Standard_D13_v2 \
--node-count 2 \
--generate-ssh-keys
Membangun profil penyebaran Kluster Big Data
Anda dapat membuat kluster big data dengan profil kustom:
azdata bdc config init --source aks-dev-test --target private-bdc-aks --force
Membuat dan mengonfigurasi profil penyebaran BDC kustom
azdata bdc config replace -c private-bdc-aks/control.json -j "$.spec.docker.imageTag=2019-CU6-ubuntu-16.04"
azdata bdc config replace -c private-bdc-aks/control.json -j "$.spec.storage.data.className=default"
azdata bdc config replace -c private-bdc-aks/control.json -j "$.spec.storage.logs.className=default"
azdata bdc config replace -c private-bdc-aks/control.json -j "$.spec.endpoints[0].serviceType=NodePort"
azdata bdc config replace -c private-bdc-aks/control.json -j "$.spec.endpoints[1].serviceType=NodePort"
azdata bdc config replace -c private-bdc-aks/bdc.json -j "$.spec.resources.master.spec.endpoints[0].serviceType=NodePort"
azdata bdc config replace -c private-bdc-aks/bdc.json -j "$.spec.resources.gateway.spec.endpoints[0].serviceType=NodePort"
azdata bdc config replace -c private-bdc-aks/bdc.json -j "$.spec.resources.appproxy.spec.endpoints[0].serviceType=NodePort"
Menyebarkan BDC di kluster privat AKS
export AZDATA_USERNAME=<your bdcadmin username>
export AZDATA_PASSWORD=< your bdcadmin password>
azdata bdc create --config-profile private-bdc-aks --accept-eula yes
Dapatkah saya menggunakan firewall pihak ketiga untuk membatasi lalu lintas keluar?
Anda dapat menggunakan firewall pihak ketiga untuk membatasi lalu lintas keluar dengan kluster privat BDC dan AKS yang disebarkan. Untuk melihat contoh, kunjungi firewall Marketplace Azure. Firewall pihak ketiga dapat digunakan dalam solusi penyebaran privat dengan konfigurasi yang lebih sesuai. Firewall harus menyediakan aturan jaringan berikut:
- Lihat semua aturan jaringan keluar dan FQDN yang diperlukan untuk kluster AKS. URL ini juga mencakup semua titik akhir dan dependensi HTTP/HTTPS wildcard. Ini dapat bervariasi dengan kluster AKS Anda, berdasarkan sejumlah kualifikasi, dan persyaratan Anda yang sebenarnya.
- Aturan jaringan yang diperlukan Azure Global / aturan FQDN/aplikasi yang disebutkan di sini.
- Aturan FQDN / aplikasi opsional yang direkomendasikan untuk kluster AKS yang disebutkan di sini.
Silakan periksa cara mengelola kluster big data di kluster privat AKS dan kemudian langkah selanjutnya adalah menyambungkan ke kluster big data.
Lihat skrip otomatisasi untuk skenario ini di repositori Sampel SQL Server di GitHub.
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk