Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek vám pomůže nasadit cluster AKS založený na privátním propojení pomocí Azure CLI nebo Terraformu. Pokud vás zajímá vytvoření clusteru AKS bez požadovaného privátního propojení nebo tunelu, přečtěte si téma Vytvoření clusteru Azure Kubernetes Service (AKS) s integrací virtuální sítě API Serveru.
Přehled privátních clusterů v AKS
V soukromém clusteru má kontrolní rovina nebo API server interní IP adresy, které jsou definovány v dokumentu RFC1918 - Přidělování adres pro soukromý internet. Pomocí privátního clusteru můžete zajistit, aby síťový provoz mezi vaším serverem API a fondy uzlů zůstal pouze v privátní síti.
Řídicí rovina nebo server rozhraní API se nachází ve skupině prostředků Azure spravované službou AKS a cluster nebo fond uzlů se nachází ve vlastní skupině prostředků. Server a fond uzlů spolu můžou komunikovat prostřednictvím služby Azure Private Link ve virtuální síti serveru API a privátního koncového bodu vystaveného v podsíti clusteru AKS.
Když vytvoříte privátní cluster AKS, AKS ve výchozím nastavení vytvoří privátní i veřejné plně kvalifikované názvy domén (FQDN) s odpovídajícími zónami DNS. Podrobné možnosti konfigurace DNS najdete v tématu Konfigurace privátní zóny DNS, privátního subzone DNS nebo vlastní subdomény.
Dostupnost regionu
Privátní clustery jsou dostupné ve veřejných oblastech, Azure Government a Microsoft Azure provozovaných 21vianetovými oblastmi, kde se podporuje AKS.
Důležité
Všechny funkce Microsoft Defender for Cloud budou oficiálně vyřazeny v oblasti Azure v Číně dne 18. srpna 2026. Vzhledem k tomuto nadcházejícímu vyřazení už zákazníci Azure v Číně nebudou moct připojit nová předplatná ke službě. Nové předplatné je jakékoli předplatné, které ještě nebylo nasazeno do služby Microsoft Defender for Cloud před 18. srpnem 2025, datem oznámení o vyřazení z provozu. Další informace o ukončení podpory najdete v tématu Microsoft Defender for Cloud vyřazení v Microsoft Azure provozovaném společností 21Vianet Oznámení.
Zákazníci by měli spolupracovat se zástupci svých účtů pro Microsoft Azure provozovaných společností 21Vianet, aby posoudili dopad tohoto vyřazení na vlastní provoz.
Požadavky pro privátní clustery AKS
Aktivní Azure předplatné. Pokud nemáte předplatné Azure, vytvořte si účet free než začnete.
Nastavte kontext předplatného
az account setpomocí příkazu. Například:az account set --subscription "00000000-0000-0000-0000-000000000000"Azure CLI verze 2.28.0 nebo vyšší. Pomocí příkazu najděte svoji verzi
az --version. Pokud potřebujete nainstalovat nebo upgradovat, přečtěte si téma Instalace Azure CLI.Pokud používáte Azure Resource Manager (ARM) nebo rozhraní REST API Azure, musí být verze rozhraní API AKS 2021-05-01 nebo vyšší.
Pokud chcete použít vlastní server DNS, přidejte Azure veřejnou IP adresu 168.63.129.16 jako nadřazený server DNS na vlastním serveru DNS a nezapomeňte tuto veřejnou IP adresu přidat jako first server DNS. Další informace o IP adrese Azure najdete v tématu Co je IP adresa 168.63.129.16?
- Zóna DNS clusteru by měla být přesměrována na 168.63.129.16. Další informace o názvech zón najdete v konfiguraci zóny DNS Azure services.
Existující clustery AKS s povolenou integrací API Server VNet mohou mít povolený režim privátního clusteru. Další informace najdete v tématu Povolení nebo zakázání režimu privátního clusteru v existujícím clusteru s integrací virtuální sítě serveru API.
Pokud potřebujete povolit Azure Container Registry v privátním clusteru AKS, nastavte privátní propojení registru kontejneru ve virtuální síti clusteru nebo nastavte partnerský vztah mezi virtuální sítí registru kontejneru a virtuální sítí privátního clusteru.
kubectl nainstalován. Můžete jej lokálně nainstalovat pomocí příkazu
az aks install-cli.
- Terraform je nainstalovaný místně. Pokyny k instalaci najdete v tématu Instalace Terraformu.
Důležité
Počínaje datem 30. listopadu 2025 Azure Kubernetes Service (AKS) již nepodporuje a neposkytuje aktualizace zabezpečení pro Azure Linux 2.0. Image uzlu Azure Linux 2.0 je zmražena ve verzi 202512.06.0. Od 31. března 2026 se image uzlů odeberou a nebudete moct škálovat fondy uzlů. Migrace na podporovanou verzi Azure Linuxu probíhá buď upgradováním vašich fondů uzlů na podporovanou verzi Kubernetes, nebo migrací na osSku AzureLinux3. Další informace najdete v problému GitHub vyřazení a ve vyhlášení o vyřazení aktualizací Azure. Pokud chcete mít přehled o oznámeních a aktualizacích, sledujte poznámky k verzi AKS.
Omezení
- Rozsahy autorizovaných IP adres se vztahují pouze na veřejný server rozhraní API. Tyto rozsahy nemůžete použít na koncový bod privátního serveru rozhraní API.
- omezení služby Azure Private Link platí pro privátní clustery.
- Pro Azure DevOps agenty hostované Microsoftem neexistuje podpora s privátními clustery. Zvažte použití agentů hostovaných z vlastních zdrojů.
- Odstranění nebo úprava privátního koncového bodu v podsíti zákazníka způsobí, že cluster přestane fungovat.
- služba Azure Private Link je podporována pouze v Azure Load Balancer standardu. Základní Azure Load Balancer se nepodporuje.
Architektura hub a spoke s vlastním DNS pro privátní AKS clustery
Architektura hub a radiály se běžně používá k nasazování sítí v Azure. V mnoha z těchto nasazení jsou nastavení DNS v paprskových virtuálních sítích nakonfigurovaná tak, aby odkazovala na centrální předávací nástroj DNS, který umožňuje místní a Azure překlad DNS.
Následující diagram znázorňuje architekturu hub a spoke soukromého clusteru AKS s vlastním DNS.
- Při vytvoření privátního clusteru se ve skupině prostředků spravovaných clusterem ve výchozím nastavení vytvoří privátní koncový bod (1) a privátní zóna DNS (2). Klastr používá záznam
Av privátní zóně k vyřešení IP adresy privátního koncového bodu pro komunikaci s API serverem. - Privátní zóna DNS je propojená pouze s virtuální sítí, ke které jsou uzly clusteru připojené (3), což znamená, že privátní koncový bod je možné přeložit pouze hostiteli v této propojené virtuální síti. Ve scénářích, kdy ve virtuální síti (výchozí) není nakonfigurovaný žádný vlastní DNS, funguje bez problému, protože hostitelé jsou nasměrováni na 168.63.129.16 pro DNS, který díky spojení může překládat záznamy v privátní zóně DNS.
- Pokud zachováte výchozí chování privátní zóny DNS, AKS se pokusí propojit zónu přímo s paprskovou virtuální sítí, která je hostitelem clusteru, i když je zóna již propojená s virtuální sítí centra.
- V paprskových virtuálních sítích, které používají vlastní servery DNS, může tato akce selhat, pokud spravovaná identita clusteru nemá v paprskové virtuální síti přispěvatele sítě . Pokud chcete zabránit selhání, zvolte jednu z následujících podporovaných konfigurací:
-
Vlastní privátní zóna DNS: Zadejte existující privátní zónu a nastavte
privateDNSZone/--private-dns-zonejejí ID prostředku. Tuto zónu propojte s příslušnou VNet (například hub VNet) a nastavtepublicDNSnafalse/ použijte--disable-public-fqdn. -
Pouze veřejný DNS: Zakažte vytváření privátní zóny nastavením
privateDNSZone/--private-dns-zonenonena výchozí hodnotu () a ponechejtepublicDNSji na výchozí hodnotě (true) / nepoužívejte--disable-public-fqdn.
-
Vlastní privátní zóna DNS: Zadejte existující privátní zónu a nastavte
- V paprskových virtuálních sítích, které používají vlastní servery DNS, může tato akce selhat, pokud spravovaná identita clusteru nemá v paprskové virtuální síti přispěvatele sítě . Pokud chcete zabránit selhání, zvolte jednu z následujících podporovaných konfigurací:
- Pokud používáte směrovací tabulku byo (Bring your Own) se službou kubenet a BYO DNS s privátními clustery, vytvoření clusteru selže. Je třeba přidružit
RouteTableve skupině prostředků uzlu k podsíti poté, co se vytvoření clusteru nezdařilo, aby byla úspěšně dokončena jeho tvorba.
Omezení privátních clusterů AKS s vlastním DNS
- Nastavení
privateDNSZone/--private-dns-zonenanoneapublicDNS: false/--disable-public-fqdnsoučasně není podporováno. - Podmíněné přesměrování nepodporuje subdomény.
Vytvoření skupiny zdrojů
Vytvořte skupinu prostředků pomocí příkazu az group create. Můžete také použít existující skupinu prostředků pro cluster AKS.
az group create \
--name <private-cluster-resource-group> \
--location <location>
Vytvoření privátního clusteru AKS s výchozími základními sítěmi
Vytvořte privátní cluster s výchozími základními sítěmi pomocí az aks create příkazu s příznakem --enable-private-cluster .
Klíčové parametry v tomto příkazu:
-
--enable-private-cluster: Povolí režim privátního clusteru.
az aks create \
--name <private-cluster-name> \
--resource-group <private-cluster-resource-group> \
--load-balancer-sku standard \
--enable-private-cluster \
--generate-ssh-keys
Vytvořte soubor s názvem
main.tfa přidejte následující kód, který definuje verzi Terraformu a určí zprostředkovatele Azure:terraform { required_version = ">= 1.3.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~> 4.0" } } } provider "azurerm" { features {} subscription_id = var.subscription_id }Do
main.tfpřidejte následující kód, který vytvoří vstupní proměnné pro ID předplatného Azure, název skupiny prostředků, umístění a název clusteru AKS. Podle potřeby můžete upravit výchozí hodnoty.variable "subscription_id" { description = "The Azure subscription ID." type = string } variable "resource_group_name" { description = "The name of the resource group for the AKS cluster." type = string default = "rg-private-aks-basic" } variable "location" { description = "The Azure region where the resources will be created." type = string default = "eastus" } variable "aks_cluster_name" { description = "The name of the AKS cluster." type = string default = "aks-private-basic" }Přidejte následující kód pro
main.tfa vytvořte skupinu prostředků Azure:resource "azurerm_resource_group" "this" { name = var.resource_group_name location = var.location }Přidejte následující kód do
main.tfpro vytvoření privátního clusteru AKS se základním síťováním:resource "azurerm_kubernetes_cluster" "this" { name = var.aks_cluster_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name dns_prefix = "privatebasicaks" private_cluster_enabled = true default_node_pool { name = "system" node_count = 1 vm_size = "Standard_DS2_v2" } identity { type = "SystemAssigned" } network_profile { load_balancer_sku = "standard" network_plugin = "kubenet" } }Postupujte podle kroků pro inicializaci Terraformu, formátování a ověření konfigurace Terraformu, vytvoření plánu provádění Terraformu, použití konfigurace Terraformu a připojení ke clusteru AKS.
Vytvoření privátního clusteru AKS s pokročilými sítěmi
Pomocí příkazu vytvořte privátní cluster s pokročilými sítěmi az aks create .
Klíčové parametry v tomto příkazu:
-
--enable-private-cluster: Povolí režim privátního clusteru. -
--network-plugin azure: Určuje síťový modul plug-in Azure CNI. -
--vnet-subnet-id <subnet-id>: ID prostředku existující podsítě ve virtuální síti. -
--dns-service-ip <dns-service-ip>: Dostupná IP adresa v rozsahu adres služby Kubernetes, která se má použít pro službu DNS clusteru. Například:10.2.0.10. -
--service-cidr <service-cidr>: Rozsah IP adres v notaci CIDR, ze kterého se mají přiřazovat IP adresy clusteru služeb IP. Například:10.2.0.0/24.
az aks create \
--resource-group <private-cluster-resource-group> \
--name <private-cluster-name> \
--load-balancer-sku standard \
--enable-private-cluster \
--network-plugin azure \
--vnet-subnet-id <subnet-id> \
--dns-service-ip <dns-service-ip> \
--service-cidr <service-cidr> \
--generate-ssh-keys
Vytvořte soubor s názvem
main.tfa přidejte následující kód, který definuje verzi Terraformu a určí zprostředkovatele Azure:terraform { required_version = ">= 1.3.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~> 4.0" } } } provider "azurerm" { features {} subscription_id = var.subscription_id }Do
main.tfpřidejte následující kód, který vytvoří vstupní proměnné pro ID předplatného Azure, název skupiny prostředků, umístění, název clusteru AKS, název virtuální sítě a název podsítě. Podle potřeby můžete upravit výchozí hodnoty.variable "subscription_id" { description = "The Azure subscription ID." type = string } variable "resource_group_name" { description = "The name of the resource group for the AKS cluster." type = string default = "rg-private-aks-advanced" } variable "location" { description = "The Azure region where the resources will be created." type = string default = "eastus" } variable "aks_cluster_name" { description = "The name of the AKS cluster." type = string default = "aks-private-advanced" } variable "vnet_name" { description = "The name of the virtual network." type = string default = "vnet-private-aks" } variable "subnet_name" { description = "The name of the subnet used by AKS." type = string default = "snet-aks" }Do
main.tfpřidejte následující kód pro vytvoření skupiny prostředků Azure, virtuální sítě a podsítě:resource "azurerm_resource_group" "this" { name = var.resource_group_name location = var.location } resource "azurerm_virtual_network" "this" { name = var.vnet_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name address_space = ["10.0.0.0/8"] } resource "azurerm_subnet" "aks" { name = var.subnet_name resource_group_name = azurerm_resource_group.this.name virtual_network_name = azurerm_virtual_network.this.name address_prefixes = ["10.240.0.0/16"] }Přidáním následujícího kódu
main.tfvytvořte cluster AKS s pokročilými sítěmi:resource "azurerm_kubernetes_cluster" "this" { name = var.aks_cluster_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name dns_prefix = "privateadvancedaks" private_cluster_enabled = true default_node_pool { name = "system" node_count = 1 vm_size = "Standard_DS2_v2" vnet_subnet_id = azurerm_subnet.aks.id } identity { type = "SystemAssigned" } network_profile { load_balancer_sku = "standard" network_plugin = "azure" dns_service_ip = "10.2.0.10" service_cidr = "10.2.0.0/24" } }Postupujte podle kroků pro inicializaci Terraformu, formátování a ověření konfigurace Terraformu, vytvoření plánu provádění Terraformu, použití konfigurace Terraformu a připojení ke clusteru AKS.
Použití vlastních domén s privátními clustery AKS
Pokud chcete konfigurovat vlastní domény, které mohou být vyřešeny pouze interně, podívejte se na Použití vlastních domén.
Zakázání veřejného plně kvalifikovaného názvu domény v privátním clusteru AKS
Zakázat veřejné FQDN na novém clusteru
Při vytváření privátního clusteru AKS deaktivujte veřejný FQDN pomocí příkazu az aks create s příznakem --disable-public-fqdn.
Klíčové parametry v tomto příkazu:
-
--disable-public-fqdn: Zakáže veřejný plně kvalifikovaný název domény (FQDN) pro server rozhraní API. -
--assign-identity <resource-id>: Určuje spravovanou identitu, která se má použít pro cluster. -
--private-dns-zone [system|none]: Určuje privátní zónu DNS, která se má použít pro cluster.systemje výchozí hodnota při konfiguraci privátní zóny DNS. Pokud vynecháte--private-dns-zone, AKS vytvoří privátní zónu DNS ve skupině prostředků uzlu.nonezakáže vytvoření privátní zóny DNS.
az aks create \
--name <private-cluster-name> \
--resource-group <private-cluster-resource-group> \
--load-balancer-sku standard \
--enable-private-cluster \
--assign-identity <resource-id> \
--private-dns-zone [system|none] \
--disable-public-fqdn \
--generate-ssh-keys
Postupujte podle kroků 1 až 3 v části Vytvoření privátního clusteru AKS s pokročilými sítěmi nebo vytvořte privátní cluster AKS s výchozími základními sítěmi a nastavte konfiguraci Terraformu a vytvořte potřebné prostředky v závislosti na vašem scénáři. Tento příklad používá pokročilé sítě.
Přidejte následující kód do
main.tfpro vytvoření privátního clusteru AKS s identitou přiřazenou uživatelem a zakázaným veřejným FQDN:resource "azurerm_user_assigned_identity" "aks" { name = "id-private-aks-public-fqdn-off" location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name } resource "azurerm_kubernetes_cluster" "this" { name = var.aks_cluster_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name dns_prefix = "privateaks" private_cluster_enabled = true private_cluster_public_fqdn_enabled = false private_dns_zone_id = "System" default_node_pool { name = "system" node_count = 1 vm_size = "Standard_DS2_v2" vnet_subnet_id = azurerm_subnet.aks.id } identity { type = "UserAssigned" identity_ids = [azurerm_user_assigned_identity.aks.id] } network_profile { load_balancer_sku = "standard" network_plugin = "azure" dns_service_ip = "10.2.0.10" service_cidr = "10.2.0.0/24" } }Postupujte podle kroků pro inicializaci Terraformu, formátování a ověření konfigurace Terraformu, vytvoření plánu provádění Terraformu, použití konfigurace Terraformu a připojení ke clusteru AKS.
Zakázat veřejný FQDN na stávajícím clusteru
Zakázat veřejné FQDN na stávajícím AKS clusteru pomocí příkazu az aks update s příznakem --disable-public-fqdn.
Klíčové parametry v tomto příkazu:
-
--disable-public-fqdn: Zakáže veřejný plně kvalifikovaný název domény (FQDN) pro server rozhraní API.
az aks update \
--name <private-cluster-name> \
--resource-group <private-cluster-resource-group> \
--disable-public-fqdn
Přidejte do existujícího
main.tfkódu následující kód, který zakáže veřejný plně kvalifikovaný název domény v existujícím clusteru AKS. Tento příklad používá pokročilé sítě. Můžete ho upravit tak, aby používal výchozí základní sítě, a to změnou příslušných prostředků a parametrů Terraformu.resource "azurerm_kubernetes_cluster" "this" { name = var.aks_cluster_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name dns_prefix = "privateaks" private_cluster_enabled = true private_cluster_public_fqdn_enabled = false private_dns_zone_id = "System" default_node_pool { name = "system" node_count = 1 vm_size = "Standard_DS2_v2" vnet_subnet_id = azurerm_subnet.aks.id } identity { type = "UserAssigned" identity_ids = [azurerm_user_assigned_identity.aks.id] } network_profile { load_balancer_sku = "standard" network_plugin = "azure" dns_service_ip = "10.2.0.10" service_cidr = "10.2.0.0/24" } }Použijte aktualizovanou konfiguraci Terraformu pomocí příkazů
terraform planaterraform apply.terraform plan terraform apply
Možnosti konfigurace privátního DNS
Privátní nastavení DNS pro privátní cluster AKS můžete nakonfigurovat pomocí Azure CLI (s parametrem --private-dns-zone) nebo šablonou Azure Resource Manager (ARM) (s vlastností privateDNSZone). Následující tabulka popisuje možnosti, které jsou k dispozici pro --private-dns-zone parametr / privateDNSZone vlastnost:
| Setting | Description |
|---|---|
system |
Výchozí hodnota při konfiguraci privátní zóny DNS. Pokud vynecháte --private-dns-zone / privateDNSZone, AKS vytvoří privátní zónu DNS ve skupině prostředků uzlu. |
none |
Pokud nastavíte --private-dns-zone / privateDNSZone na none, AKS nevytvoří privátní zónu DNS. |
<custom-private-dns-zone-resource-id> |
Pokud chcete tento parametr použít, musíte pro Azure globální cloud vytvořit privátní zónu DNS v následujícím formátu: privatelink.<region>.azmk8s.io nebo <subzone>.privatelink.<region>.azmk8s.io. Pro budoucí použití potřebujete ID prostředku privátní zóny DNS. Potřebujete také uživatelsky přiřazenou identitu nebo zřizovatele služeb s rolemi Privátní DNS Zone Contributor a Network Contributor. Pro clustery, které využívají integraci VNet serveru API, privátní zóna DNS podporuje formát pojmenování private.<region>.azmk8s.io nebo <subzone>.private.<region>.azmk8s.io.
Po vytvoření clusteru nemůžete tyto prostředky změnit ani odstranit, protože to může způsobit problémy s výkonem a selhání upgradu clusteru. Můžete použít --fqdn-subdomain <subdomain> s <custom-private-dns-zone-resource-id> pouze k poskytování schopností subdomény pro privatelink.<region>.azmk8s.io. Pokud zadáváte subzónu, platí pro její název limit 32 znaků. |
Důležité informace o privátním DNS
Při konfiguraci privátního DNS pro privátní cluster AKS mějte na paměti následující skutečnosti:
- Pokud je privátní zóna DNS v jiném předplatném než cluster AKS, musíte v obou předplatných zaregistrovat poskytovatele
Microsoft.ContainerServiceAzure. - Pokud je váš cluster AKS nakonfigurovaný s služba Active Directory instančním objektem, AKS nepodporuje použití spravované identity přiřazené systémem s vlastní privátní zónou DNS. Cluster musí používat ověřování spravované identity přidělené uživatelem.
Vytvořte privátní AKS cluster s privátní DNS zónou
Pomocí příkazu vytvořte privátní cluster AKS s privátní zónou az aks create DNS.
Klíčové parametry v tomto příkazu:
-
--enable-private-cluster: Povolí režim privátního clusteru. -
--private-dns-zone [system|none]: Nakonfiguruje privátní zónu DNS pro cluster.systemje výchozí hodnota při konfiguraci privátní zóny DNS. Pokud vynecháte--private-dns-zone, AKS vytvoří privátní zónu DNS ve skupině prostředků uzlu.nonezakáže vytvoření privátní zóny DNS. -
--assign-identity <resource-id>: ID prostředku uživatelsky přiřazené spravované identity s rolemi Přispěvatel zóny Privátní DNS a Přispěvatel sítě.
az aks create \
--name <private-cluster-name> \
--resource-group <private-cluster-resource-group> \
--load-balancer-sku standard \
--enable-private-cluster \
--assign-identity <resource-id> \
--private-dns-zone [system|none] \
--generate-ssh-keys
Postupujte podle kroků 1 až 3 v části Vytvoření privátního clusteru AKS s pokročilými sítěmi nebo vytvořte privátní cluster AKS s výchozími základními sítěmi a nastavte konfiguraci Terraformu a vytvořte potřebné prostředky v závislosti na vašem scénáři. Tento příklad používá pokročilé sítě.
Přidejte následující kód pro
main.tfvytvoření privátního clusteru AKS se zónou AKS spravovanou privátním DNS:resource "azurerm_kubernetes_cluster" "this" { name = var.aks_cluster_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name dns_prefix = "aks-system-dns" private_cluster_enabled = true private_dns_zone_id = "System" default_node_pool { name = "system" node_count = 1 vm_size = "Standard_DS2_v2" vnet_subnet_id = azurerm_subnet.aks.id } identity { type = "SystemAssigned" } network_profile { network_plugin = "azure" load_balancer_sku = "standard" dns_service_ip = "10.2.0.10" service_cidr = "10.2.0.0/24" } }Postupujte podle kroků pro inicializaci Terraformu, formátování a ověření konfigurace Terraformu, vytvoření plánu provádění Terraformu, použití konfigurace Terraformu a připojení ke clusteru AKS.
Vytvoření privátního clusteru AKS bez privátní zóny DNS
Postupujte podle kroků 1 až 3 v části Vytvoření privátního clusteru AKS s pokročilými sítěmi nebo vytvořte privátní cluster AKS s výchozími základními sítěmi a nastavte konfiguraci Terraformu a vytvořte potřebné prostředky v závislosti na vašem scénáři. Tento příklad používá pokročilé sítě.
Přidáním následujícího kódu
main.tfvytvořte cluster AKS bez privátní zóny DNS:resource "azurerm_kubernetes_cluster" "this" { name = var.aks_cluster_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name dns_prefix = "aks-no-dns" private_cluster_enabled = true private_dns_zone_id = "None" default_node_pool { name = "system" node_count = 1 vm_size = "Standard_DS2_v2" vnet_subnet_id = azurerm_subnet.aks.id } identity { type = "SystemAssigned" } network_profile { network_plugin = "azure" load_balancer_sku = "standard" dns_service_ip = "10.2.0.10" service_cidr = "10.2.0.0/24" } }Postupujte podle kroků pro inicializaci Terraformu, formátování a ověření konfigurace Terraformu, vytvoření plánu provádění Terraformu, použití konfigurace Terraformu a připojení ke clusteru AKS.
Vytvořte privátní AKS cluster s vlastní privátní DNS zónou nebo privátní DNS podzónou
Pomocí příkazu vytvořte privátní cluster AKS s vlastní privátní zónou DNS nebo podzonem az aks create .
Klíčové parametry v tomto příkazu:
-
--enable-private-cluster: Povolí režim privátního clusteru. -
--private-dns-zone [<custom-private-dns-zone-resource-id>|<custom-private-dns-subzone-resource-id>]: ID prostředku existující privátní zóny DNS nebo podzóny ve formátu platném pro globální cloud Azure:privatelink.<region>.azmk8s.ionebo<subzone>.privatelink.<region>.azmk8s.io. : ID prostředku spravované identity přiřazené uživatelem s rolemi přispěvatele zóny Privátní DNS a přispěvatele sítě.
az aks create \
--name <private-cluster-name> \
--resource-group <private-cluster-resource-group> \
--load-balancer-sku standard \
--enable-private-cluster \
--assign-identity <resource-id> \
--private-dns-zone [<custom-private-dns-zone-resource-id>|<custom-private-dns-subzone-resource-id>] \
--generate-ssh-keys
Při použití vlastní privátní zóny DNS zodpovídáte za vytváření a správu infrastruktury DNS místo toho, abyste se spoléhali na Azure spravované DNS. To zahrnuje vytvoření zóny DNS, jeho propojení s vaší virtuální sítí a přiřazení potřebných oprávnění ke správě záznamů AKS.
Pro vlastní konfigurace DNS musíte použít uživatelsky přiřazenou spravovanou identitu s rolemi Privátní DNS Zone Contributor (Přispěvatel zóny Privátní DNS) a Network Contributor (Přispěvatel sítě).
Postupujte podle kroků 1 až 3 v části Vytvoření privátního clusteru AKS s pokročilými sítěmi nebo vytvořte privátní cluster AKS s výchozími základními sítěmi a nastavte konfiguraci Terraformu a vytvořte potřebné prostředky v závislosti na vašem scénáři. Tento příklad používá pokročilé sítě.
Přidejte kód k
main.tfpro vytvoření privátního clusteru AKS s vlastní privátní DNS zónou nebo podzónou:resource "azurerm_user_assigned_identity" "aks" { name = "aks-custom-dns-id" location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name } resource "azurerm_private_dns_zone" "aks" { name = "privatelink.eastus.azmk8s.io" resource_group_name = azurerm_resource_group.this.name } resource "azurerm_private_dns_zone_virtual_network_link" "link" { name = "aks-dns-link" resource_group_name = azurerm_resource_group.this.name private_dns_zone_name = azurerm_private_dns_zone.aks.name virtual_network_id = azurerm_virtual_network.this.id } resource "azurerm_role_assignment" "dns" { scope = azurerm_private_dns_zone.aks.id role_definition_name = "Private DNS Zone Contributor" principal_id = azurerm_user_assigned_identity.aks.principal_id } resource "azurerm_role_assignment" "network" { scope = azurerm_virtual_network.this.id role_definition_name = "Network Contributor" principal_id = azurerm_user_assigned_identity.aks.principal_id } resource "azurerm_kubernetes_cluster" "this" { name = var.aks_cluster_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name dns_prefix = "aks-custom-dns" private_cluster_enabled = true private_dns_zone_id = azurerm_private_dns_zone.aks.id default_node_pool { name = "system" node_count = 1 vm_size = "Standard_DS2_v2" vnet_subnet_id = azurerm_subnet.aks.id } identity { type = "UserAssigned" identity_ids = [azurerm_user_assigned_identity.aks.id] } network_profile { network_plugin = "azure" load_balancer_sku = "standard" dns_service_ip = "10.2.0.10" service_cidr = "10.2.0.0/24" } depends_on = [ azurerm_role_assignment.dns, azurerm_role_assignment.network ] }Postupujte podle kroků pro inicializaci Terraformu, formátování a ověření konfigurace Terraformu, vytvoření plánu provádění Terraformu, použití konfigurace Terraformu a připojení ke clusteru AKS.
Vytvořte soukromý AKS cluster s vlastní privátní DNS zónou a vlastním subdoménou.
Pomocí příkazu vytvořte privátní cluster AKS s vlastní privátní zónou DNS a subdoménou az aks create .
Klíčové parametry v tomto příkazu:
-
--enable-private-cluster: Povolí režim privátního clusteru. -
--private-dns-zone <custom-private-dns-zone-resource-id>: ID prostředku existující privátní zóny DNS v následujícím formátu pro globální cloud Azure:privatelink.<region>.azmk8s.io. -
--fqdn-subdomain <subdomain>: Subdoména, kterou je třeba použít pro úplný název domény clusteru v rámci vlastní soukromé zóny DNS. -
--assign-identity <resource-id>: ID prostředku uživatelem přiřazené spravované identity s rolemi přispěvatele pro zónu Privátní DNS a přispěvatele sítě Network Contributor.
az aks create \
--name <private-cluster-name> \
--resource-group <private-cluster-resource-group> \
--load-balancer-sku standard \
--enable-private-cluster \
--assign-identity <resource-id> \
--private-dns-zone <custom-private-dns-zone-resource-id> \
--fqdn-subdomain <subdomain> \
--generate-ssh-keys
Postupujte podle kroků 1 až 3 v části Vytvoření privátního clusteru AKS s pokročilými sítěmi nebo vytvořte privátní cluster AKS s výchozími základními sítěmi a nastavte konfiguraci Terraformu a vytvořte potřebné prostředky v závislosti na vašem scénáři. Tento příklad používá pokročilé sítě.
Přidejte následující kód do
main.tfk vytvoření privátního clusteru AKS s vlastní privátní zónou DNS a subdoménou:resource "azurerm_kubernetes_cluster" "this" { name = var.aks_cluster_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name dns_prefix = "aks-subdomain" private_cluster_enabled = true private_dns_zone_id = azurerm_private_dns_zone.aks.id fqdn_subdomain = "team1" default_node_pool { name = "system" node_count = 1 vm_size = "Standard_DS2_v2" vnet_subnet_id = azurerm_subnet.aks.id } identity { type = "UserAssigned" identity_ids = [azurerm_user_assigned_identity.aks.id] } network_profile { network_plugin = "azure" load_balancer_sku = "standard" dns_service_ip = "10.2.0.10" service_cidr = "10.2.0.0/24" } }Postupujte podle kroků pro inicializaci Terraformu, formátování a ověření konfigurace Terraformu, vytvoření plánu provádění Terraformu, použití konfigurace Terraformu a připojení ke clusteru AKS.
Aktualizace existujícího privátního clusteru AKS z privátní zóny DNS na veřejný
Můžete aktualizovat pouze z byo (přineste si vlastní) nebo system do none. Není podporována žádná jiná kombinace hodnot aktualizace.
Výstraha
Když aktualizujete privátní cluster z byo nebo system na none, uzly agenta se změní tak, že budou používat veřejné FQDN. V clusteru AKS, který používá Škálovací sady virtuálních počítačů Azure, se provede aktualizace image uzlu
Aktualizujte privátní cluster z byo nebo system na none pomocí příkazu az aks update s parametrem --private-dns-zone nastaveným na none.
az aks update \
--name <private-cluster-name> \
--resource-group <private-cluster-resource-group> \
--private-dns-zone none
Do existujícího
main.tfkódu přidejte následující kód pro aktualizaci privátního clusteru AKS z privátní zóny DNS na veřejný. Tento příklad používá pokročilé sítě. Můžete ho upravit tak, aby používal výchozí základní sítě, a to změnou příslušných prostředků a parametrů Terraformu.resource "azurerm_kubernetes_cluster" "this" { name = var.aks_cluster_name location = azurerm_resource_group.this.location resource_group_name = azurerm_resource_group.this.name dns_prefix = "aks-update" private_cluster_enabled = true private_dns_zone_id = "None" default_node_pool { name = "system" node_count = 1 vm_size = "Standard_DS2_v2" vnet_subnet_id = azurerm_subnet.aks.id } identity { type = "UserAssigned" identity_ids = [azurerm_user_assigned_identity.aks.id] } network_profile { network_plugin = "azure" load_balancer_sku = "standard" dns_service_ip = "10.2.0.10" service_cidr = "10.2.0.0/24" } }Použijte aktualizovanou konfiguraci Terraformu pomocí příkazů
terraform planaterraform apply.terraform plan terraform apply
Inicializujte Terraform
Inicializace Terraformu v adresáři obsahujícím váš main.tf soubor pomocí terraform init příkazu Tento příkaz stáhne poskytovatele Azure potřebného ke správě Azure prostředků pomocí Terraformu.
terraform init
Formátování a ověření konfigurace Terraformu
Naformátujte a ověřte konfiguraci Terraformu pomocí příkazů terraform fmt a terraform validate.
terraform fmt
terraform validate
Vytvoření plánu provádění Terraformu
Pomocí příkazu vytvořte plán provádění Terraformu terraform plan . Tento příkaz ukazuje prostředky, které Terraform vytvoří nebo upraví ve vašem předplatném Azure.
terraform plan -var="subscription_id=<your-subscription-id>"
Aplikujte konfiguraci Terraformu
Po kontrole a potvrzení plánu provádění aplikujte konfiguraci Terraformu pomocí příkazu terraform apply. Tento příkaz vytvoří nebo upraví prostředky definované v souboru main.tf ve vašem předplatném Azure.
terraform apply -var="subscription_id=<your-subscription-id>"
Konfigurace kubectl pro připojení k privátnímu clusteru AKS
Pro správu Kubernetes clusteru použijte příkazový řádkový klient Kubernetes, kubectl.
kubectl je již nainstalován, pokud používáte Azure Cloud Shell. Chcete-li nainstalovat kubectl lokálně, použijte příkaz az aks install-cli.
Nakonfigurujte
kubectlpro připojení ke svému Kubernetes clusteru pomocí příkazuaz aks get-credentials. Tento příkaz stahuje přihlašovací údaje a konfiguruje Kubernetes CLI pro jejich použití.az aks get-credentials --resource-group <private-cluster-resource-group> --name <private-cluster-name>Ověřte připojení k vašemu clusteru pomocí příkazu
kubectl get. Tento příkaz vrátí seznam uzlů clusteru.kubectl get nodesPříkaz vrátí výstup podobný následujícímu příkladu výstupu:
NAME STATUS ROLES AGE VERSION aks-nodepool1-12345678-vmss000000 Ready agent 3h6m v1.15.11 aks-nodepool1-12345678-vmss000001 Ready agent 3h6m v1.15.11 aks-nodepool1-12345678-vmss000002 Ready agent 3h6m v1.15.11