Vytvoření privátního clusteru Azure Kubernetes Service (AKS)
V privátním clusteru má řídicí rovina nebo server rozhraní API interní IP adresy definované v RFC1918 – Přidělování adres pro dokument privátního internetu . Pomocí soukromého clusteru můžete zajistit, aby síťový provoz mezi serverem API a fondy uzlů zůstal pouze v soukromé síti.
Řídicí rovina nebo server rozhraní API se nachází ve skupině prostředků Azure spravované službou Azure Kubernetes Service (AKS). Váš cluster nebo fond uzlů je ve vaší 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, který je vystavený v podsíti clusteru AKS.
Když zřídíte soukromý (privátní) cluster AKS, AKS ve výchozím nastavení vytvoří soukromý plně kvalifikovaný název domény se soukromou zónou DNS a další veřejný plně kvalifikovaný název domény s odpovídajícím záznamem A ve veřejném DNS Azure. Uzly agenta nadále používají záznam A v privátní zóně DNS k překladu privátní IP adresy privátního koncového bodu pro komunikaci se serverem rozhraní API.
Účelem tohoto článku je pomoct s nasazením clusteru AKS založeného na privátním propojení. 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 s integrací virtuální sítě API Serveru (Preview).
Regionální dostupnost
Privátní cluster je k dispozici ve veřejných oblastech, Azure Government a Microsoft Azure provozovaných oblastmi 21Vianet, ve kterých se podporuje AKS.
Požadavky
- Azure CLI verze 2.28.0 a vyšší. Spuštěním příkazu vyhledejte
az --version
verzi a spusťteaz upgrade
upgrade verze. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI. - Rozšíření
aks-preview
0.5.29 nebo vyšší. - Pokud používáte Azure Resource Manager (ARM) nebo azure REST API, musí být verze rozhraní API AKS 2021–05-01 nebo vyšší.
- Služba Azure Private Link se podporuje jenom v Azure Load Balanceru úrovně Standard. Základní Azure Load Balancer se nepodporuje.
- Pokud chcete použít vlastní server DNS, přidejte veřejnou IP adresu Azure 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 první 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 to, co předáváte na verzi 168.63.129.16. Další informace o názvech zón najdete v konfiguraci zóny DNS služeb Azure.
Poznámka:
Fond uzlů Azure s Linuxem je teď obecně dostupný (GA). Další informace o výhodách a postupu nasazení najdete v tématu Úvod do služby Azure Linux Container Host for AKS.
Omezení
- Rozsahy autorizovaných IP adres se nedají použít na koncový bod privátního serveru rozhraní API, ale vztahují se jenom na veřejný server rozhraní API.
- Omezení služby Azure Private Link platí pro privátní clustery.
- Agenty hostované Microsoftem v Azure DevOps s privátními clustery nepodporují. Zvažte použití agentů v místním prostředí.
- Pokud potřebujete službě Azure Container Registry povolit práci s privátním clusterem AKS, nastavte privátní propojení registru kontejneru ve virtuální síti clusteru nebo nastavte partnerský vztah mezi virtuální sítí Container Registry a virtuální sítí privátního clusteru.
- Neexistuje žádná podpora pro převod stávajících clusterů AKS na privátní clustery.
- Odstranění nebo úprava privátního koncového bodu v podsíti zákazníka způsobí, že cluster přestane fungovat.
Vytvoření privátního clusteru AKS
Vytvoření skupiny zdrojů
Pomocí příkazu vytvořte skupinu az group create
prostředků. Můžete také použít existující skupinu prostředků pro cluster AKS.
az group create -l eastus -n myResourceGroup
Výchozí základní sítě
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
.
az aks create -n <private-cluster-name> -g <private-cluster-resource-group> --load-balancer-sku standard --enable-private-cluster
Pokročilé funkce pro práci v síti
Pomocí příkazu s následujícími příznaky vytvořte privátní cluster s pokročilými sítěmi az aks create
:
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 10.2.0.10 \
--service-cidr 10.2.0.0/24
Použití vlastních domén
Pokud chcete nakonfigurovat vlastní domény, které je možné přeložit jenom interně, přečtěte si téma Použití vlastních domén.
Zakázání veřejného plně kvalifikovaného názvu domény
Zakázání veřejného plně kvalifikovaného názvu domény v novém clusteru AKS
Zakažte veřejný plně kvalifikovaný název domény při vytváření privátního clusteru AKS pomocí příznaku --disable-public-fqdn
.
az aks create -n <private-cluster-name> -g <private-cluster-resource-group> --load-balancer-sku standard --enable-private-cluster --enable-managed-identity --assign-identity <resourceID> --private-dns-zone <private-dns-zone-mode> --disable-public-fqdn
Zakázání veřejného plně kvalifikovaného názvu domény v existujícím clusteru
Pomocí příkazu s --disable-public-fqdn
příznakem zakažte veřejný plně kvalifikovaný název domény v existujícím clusteru az aks update
AKS.
az aks update -n <private-cluster-name> -g <private-cluster-resource-group> --disable-public-fqdn
Konfigurace privátní zóny DNS
Privátní zóny DNS můžete nakonfigurovat pomocí následujících parametrů:
- system: Toto je výchozí hodnota.
--private-dns-zone
Pokud argument vynecháte, AKS vytvoří privátní zónu DNS ve skupině prostředků uzlu. - none: Výchozí hodnota je veřejná SLUŽBA DNS. AKS nevytvoří privátní zónu DNS.
- CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID: To vyžaduje, abyste pro globální cloud Azure vytvořili 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í budete potřebovat ID prostředku privátní zóny DNS. Potřebujete také identitu přiřazenou uživatelem nebo instanční objekt s rolemi přispěvatele zóny Privátní DNS a přispěvatele sítě. Při nasazování pomocí integrace virtuální sítě serveru API podporuje privátní zóna DNS formátprivate.<region>.azmk8s.io
pojmenování nebo<subzone>.private.<region>.azmk8s.io
.- Pokud je privátní zóna DNS v jiném předplatném než cluster AKS, musíte zaregistrovat poskytovatele Azure Microsoft.ContainerServices v obou předplatných.
- "fqdn-subdomain" lze využít s "CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID" pouze k poskytování schopností subdomény .
privatelink.<region>.azmk8s.io
- Pokud je cluster AKS nakonfigurovaný s instančním objektem služby Active Directory, AKS nepodporuje použití spravované identity přiřazené systémem s vlastní privátní zónou DNS.
- Pokud zadáváte
<subzone>
limit 32 znaků pro<subzone>
název.
Poznámka:
CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID je možné nakonfigurovat pomocí šablony ARM kromě Azure CLI. privateDNSZone
přijímá id prostředku privátní zóny DNZ, jak je znázorněno v následujícím příkladu:
properties.apiServerAccessProfile.privateDNSZone.
"apiServerAccessProfile": {
"enablePrivateCluster": true,
"privateDNSZone": "system|none|[resourceId(..., 'Microsoft.Network/privateDnsZones', 'privatelink.<region>.azmk8s.io']"
}
Důležité
CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID nelze po vytvoření clusteru změnit a nedá se odstranit. V opačném případě bude mít cluster problémy s prováděním operací upgradu.
Vytvoření privátního clusteru AKS s privátní zónou DNS
Pomocí příkazu s az aks create
následujícími příznaky vytvořte privátní cluster AKS s privátní zónou DNS:
az aks create -n <private-cluster-name> -g <private-cluster-resource-group> --load-balancer-sku standard --enable-private-cluster --enable-managed-identity --assign-identity <resourceID> --private-dns-zone [system|none]
Vytvoření privátního clusteru AKS s vlastní privátní zónou DNS nebo privátním podzonem DNS
Pomocí příkazu s následujícími příznaky vytvořte privátní cluster AKS s vlastní privátní zónou DNS nebo podzonem az aks create
:
# The custom private DNS zone name should be in the following format: "<subzone>.privatelink.<region>.azmk8s.io"
az aks create -n <private-cluster-name> -g <private-cluster-resource-group> --load-balancer-sku standard --enable-private-cluster --enable-managed-identity --assign-identity <resourceID> --private-dns-zone <custom private dns zone or custom private dns subzone resourceID>
Vytvoření privátního clusteru AKS s vlastní privátní zónou DNS a vlastní subdoménou
Vytvořte privátní cluster AKS s vlastní privátní zónou DNS a subdoménou az aks create
pomocí příkazu s následujícími příznaky:
# 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 -n <private-cluster-name> -g <private-cluster-resource-group> --load-balancer-sku standard --enable-private-cluster --enable-managed-identity --assign-identity <resourceID> --private-dns-zone <custom private dns zone resourceID> --fqdn-subdomain <subdomain>
Aktualizace privátního clusteru z privátní zóny DNS na veřejný
Poznámka:
Tato funkce vyžaduje aks-preview
verzi >rozšíření = 0.5.97.
Aktualizujte privátní cluster z byo
příkazu nebo none
system
ho az aks update
pomocí následujících příznaků:
az aks update -n <private-cluster-name> -g <private-cluster-resource-group> --private-dns-zone none
Poznámka:
Můžete aktualizovat pouze z byo
nebo system
do none
. Nepodporuje se žádná jiná kombinace aktualizačních hodnot.
Možnosti připojení k privátnímu clusteru
Koncový bod serveru rozhraní API nemá žádnou veřejnou IP adresu. Ke správě serveru rozhraní API budete muset použít virtuální počítač, který má přístup ke službě Azure Virtual Network (VNet) clusteru AKS. Existuje několik možností pro vytvoření síťového připojení k privátnímu clusteru:
- Pomocí příkazu s
--vnet-name
příznakem vytvořte virtuální počítač ve stejné virtuální síti jako clusteraz vm create
AKS. - Použijte virtuální počítač v samostatné síti a nastavte partnerský vztah virtuálních sítí.
- Použijte připojení ExpressRoute nebo VPN.
- Použijte funkci AKS
command invoke
. - Použijte připojení privátního koncového bodu .
Poznámka:
Nejjednodušší možností je vytvoření virtuálního počítače ve stejné virtuální síti jako cluster AKS. ExpressRoute a sítě VPN přidávají náklady a vyžadují další složitost sítě. Partnerský vztah virtuálních sítí vyžaduje naplánování rozsahů CIDR sítě, abyste zajistili, že se nepřekrývají rozsahy.
Peering virtuálních sítí
Peering virtuálních sítí je jedním ze způsobů, jak získat přístup k privátnímu clusteru. Pokud chcete použít partnerský vztah virtuálních sítí, musíte nastavit propojení mezi virtuální sítí a zónou privátního DNS.
- Z prohlížeče přejděte na web Azure Portal.
- Na webu Azure Portal přejděte do skupiny prostředků uzlu.
- Vyberte privátní zónu DNS.
- V levém podokně vyberte Virtuální síť.
- Vytvořte nový odkaz pro přidání virtuální sítě virtuálního počítače do privátní zóny DNS. Zpřístupnění odkazu zóny DNS trvá několik minut.
- Na webu Azure Portal přejděte do skupiny prostředků, která obsahuje virtuální síť vašeho clusteru.
- V pravém podokně vyberte virtuální síť. Název virtuální sítě je ve formátu aks-vnet-*.
- V levém podokně vyberte Partnerské vztahy.
- Vyberte Přidat, přidejte virtuální síť virtuálního počítače a pak vytvořte partnerský vztah. Další informace najdete v tématu Partnerské vztahy virtuálních sítí.
Hvězdicová architektura s využitím vlastního DNS
Hvězdicové architektury se běžně používají k nasazení 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í překlad DNS a překlad DNS založený na Azure. Při nasazování clusteru AKS do takového síťového prostředí je potřeba vzít v úvahu některé zvláštní aspekty:
- Když je privátní cluster zřízený, ve výchozím nastavení se ve skupině prostředků spravovaných clusterem vytvoří privátní koncový bod (1) a privátní zóna DNS (2). Cluster používá
A
záznam v privátní zóně k překladu IP adresy privátního koncového bodu pro komunikaci se serverem rozhraní API. - Privátní zóna DNS je propojená pouze s virtuální sítí, ke které jsou uzly clusteru připojené (3). To 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, to funguje bez problému jako bod hostitelů na 168.63.129.16 pro DNS, které můžou kvůli propojení překládat záznamy v privátní zóně DNS.
- Ve scénářích, kdy má virtuální síť obsahující váš cluster vlastní nastavení DNS (4), nasazení clusteru selže, pokud není privátní zóna DNS propojená s virtuální sítí, která obsahuje vlastní překladače DNS (5). Tento odkaz lze vytvořit ručně po vytvoření privátní zóny během zřizování clusteru nebo prostřednictvím automatizace při detekci vytvoření zóny pomocí mechanismů nasazení založených na událostech (například Azure Event Grid a Azure Functions). Aby nedošlo k selhání clusteru během počátečního nasazení, je možné cluster nasadit s ID prostředku privátní zóny DNS. To funguje jenom s typem
Microsoft.ContainerService/managedCluster
prostředku a verzí2022-07-01
rozhraní API . Použití starší verze se šablonou ARM nebo definicí prostředku Bicep se nepodporuje.
Poznámka:
Podmíněné předávání nepodporuje subdomény.
Poznámka:
Pokud používáte vlastní směrovací tabulku s kubenetem a používání vlastního DNS s privátními clustery, vytvoření clusteru se nezdaří. Po vytvoření clusteru se RouteTable
nepodařilo úspěšně vytvořit přidružení ve skupině prostředků uzlu k podsíti.
Použití připojení privátního koncového bodu
Privátní koncový bod je možné nastavit tak, aby virtuální síť nemusela být v partnerském vztahu ke komunikaci s privátním clusterem. Pokud chcete použít privátní koncový bod, vytvořte ve virtuální síti nový privátní koncový bod a pak vytvořte propojení mezi vaší virtuální sítí a novou zónou privátního DNS.
Důležité
Pokud je virtuální síť nakonfigurovaná s vlastními servery DNS, bude potřeba pro prostředí správně nastavit privátní DNS. Další podrobnosti najdete v dokumentaci k překladu názvů virtuálních sítí.
Vytvoření prostředku privátního koncového bodu
Ve virtuální síti vytvořte prostředek privátního koncového bodu:
- Z prohlížeče přejděte na web Azure Portal.
- Z nabídky portálu Azure vyberte možnost Vytvořit prostředek.
- Vyhledejte privátní koncový bod a vyberte Vytvořit > privátní koncový bod.
- Vyberte Vytvořit.
- Na kartě Základy nastavte následující možnosti:
- Podrobnosti o projektu:
- Vyberte předplatné Azure.
- Vyberte skupinu prostředků Azure, ve které se nachází vaše virtuální síť.
- Podrobnosti o instanci:
- Zadejte název privátního koncového bodu, například myPrivateEndpoint.
- Vyberte oblast privátního koncového bodu.
- Podrobnosti o projektu:
Důležité
Zkontrolujte, jestli je vybraná oblast stejná jako virtuální síť, ze které se chcete připojit, jinak se na kartě Konfigurace nezobrazí vaše virtuální síť.
- Vyberte Další: Prostředek a nastavte následující možnosti:
- metoda Připojení ion: V adresáři vyberte Připojení k prostředku Azure.
- Předplatné: Vyberte předplatné, ve kterém se nachází váš privátní cluster.
- Typ prostředku: Vyberte Microsoft.ContainerService/managedClusters.
- Prostředek: Vyberte privátní cluster.
- Cílový dílčí prostředek: Vyberte správu.
- Vyberte Další: Virtuální síť a nastavte následující možnosti:
- Sítě:
- Virtuální síť: Vyberte svou virtuální síť.
- Podsíť: Vyberte podsíť.
- Sítě:
- Vyberte Další: DNS>Next: Značky a (volitelně) podle potřeby nastavte hodnoty klíče.
- Vyberte Další: Zkontrolovat a vytvořit vytvořit>.
Po vytvoření prostředku zaznamenejte privátní IP adresu privátního koncového bodu pro budoucí použití.
Vytvoření privátní zóny DNS
Po vytvoření privátního koncového bodu vytvořte novou privátní zónu DNS se stejným názvem jako privátní zóna DNS vytvořená privátním clusterem:
- Na webu Azure Portal přejděte do skupiny prostředků uzlu.
- Vyberte privátní zónu a záznam DNS:
- Název privátní zóny DNS, která se řídí vzorem
*.privatelink.<region>.azmk8s.io
. - Název záznamu
A
(s výjimkou názvu privátního DNS). - Hodnota TTL (time-to-live).
- Název privátní zóny DNS, která se řídí vzorem
- Na webu Azure Portal vyberte Vytvořit prostředek.
- Vyhledejte Privátní DNS zónu a vyberte Vytvořit > Privátní DNS zónu.
- Na kartě Základy nastavte následující možnosti:
- Podrobnosti o projektu:
- Vyberte své předplatné.
- Vyberte skupinu prostředků, ve které jste vytvořili privátní koncový bod.
- Podrobnosti o instanci:
- Zadejte název zóny DNS načtené z předchozích kroků.
- Výchozí umístění vaší skupiny prostředků je v oblasti .
- Podrobnosti o projektu:
- Vyberte Zkontrolovat a vytvořit>Vytvořit.
Vytvoření záznamu A
Po vytvoření privátní zóny DNS vytvořte A
záznam, který přidruží privátní koncový bod k privátnímu clusteru:
- Přejděte do privátní zóny DNS, kterou jste vytvořili v předchozích krocích.
- Na stránce Přehled vyberte Sadu záznamů.
- Na kartě Přidat sadu záznamů nastavte následující možnosti:
- Název: Zadejte název načtený ze záznamu
A
v zóně DNS privátního clusteru. - Typ: Vyberte A - Záznam adresy.
- TTL: Zadejte číslo ze záznamu
A
v zóně DNS privátního clusteru. - Jednotka TTL: Změňte hodnotu rozevíracího seznamu tak, aby odpovídala hodnotě v záznamu
A
ze zóny DNS privátního clusteru. - IP adresa: Zadejte IP adresu privátního koncového bodu, který jste vytvořili.
- Název: Zadejte název načtený ze záznamu
Důležité
Při vytváření záznamu A
použijte pouze název a ne plně kvalifikovaný název domény (FQDN).
Propojení zóny privátního DNS s virtuální sítí
Po vytvoření záznamu A
propojte privátní zónu DNS s virtuální sítí, která bude přistupovat k privátnímu clusteru:
- Přejděte do privátní zóny DNS, kterou jste vytvořili v předchozích krocích.
- V levém podokně vyberte propojení virtuální sítě.
- Vyberte Přidat a nastavte následující možnosti:
- Název odkazu: Zadejte název propojení virtuální sítě.
- Předplatné: Vyberte předplatné, ve kterém se nachází váš privátní cluster.
- Virtuální síť: Vyberte virtuální síť vašeho privátního clusteru.
- Výběrem OK vytvořte odkaz.
Dokončení operace může trvat několik minut. Po vytvoření propojení virtuální sítě se k němu dostanete z karty Propojení virtuální sítě, kterou jste použili v kroku 2.
Upozorňující
Pokud se privátní cluster zastaví a restartuje, původní služba privátního clusteru se odebere a znovu vytvoří, což přeruší připojení mezi vaším privátním koncovým bodem a privátním clusterem. Pokud chcete tento problém vyřešit, odstraňte a znovu vytvořte všechny privátní koncové body vytvořené uživatelem propojenými s privátním clusterem. Pokud mají znovu vytvořeny privátní koncové body nové IP adresy, budete také muset aktualizovat záznamy DNS.
Další kroky
Přidružené osvědčené postupy najdete v tématu Osvědčené postupy pro připojení k síti a zabezpečení v AKS.