Vytvoření privátního clusteru Azure Kubernetes Service (AKS)
Tento článek vám pomůže nasadit cluster AKS založený 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).
Přehled
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í 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 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 privátní cluster AKS, AKS ve výchozím nastavení vytvoří privátní plně kvalifikovaný název domény s privátní zónou DNS a další veřejný plně kvalifikovaný název domény s odpovídajícím A
záznamem ve veřejném DNS Azure. Uzly agenta nadále používají A
záznam 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.
Regionální dostupnost
Privátní clustery jsou dostupné ve veřejných oblastech, Azure Government a Microsoft Azure provozovaných 21vianetovými oblastmi, ve kterých se podporuje AKS.
Požadavky
- Azure CLI verze 2.28.0 nebo 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šší.
- 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.
- Existující clustery AKS povolené s integrací virtuální sítě serveru API můžou 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.
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í registru kontejneru a virtuální sítí privátního clusteru.
- 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 se podporuje jenom v Azure Load Balanceru úrovně Standard. Základní Azure Load Balancer se nepodporuje.
Vytvoření privátního clusteru AKS
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 \ --name <private-cluster-resource-group> \ --location <location>
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 \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --load-balancer-sku standard \ --enable-private-cluster \ --generate-ssh-keys
Připojení k privátnímu clusteru
Ke správě clusteru Kubernetes použijte klienta příkazového řádku Kubernetes kubectl. kubectl
je už nainstalovaný, pokud používáte Azure Cloud Shell. Pokud chcete nainstalovat kubectl
místně, použijte az aks install-cli
příkaz.
Pomocí příkazu nakonfigurujte
kubectl
připojení ke clusteruaz aks get-credentials
Kubernetes. Tento příkaz stáhne přihlašovací údaje a nakonfiguruje rozhraní příkazového řádku Kubernetes tak, aby je používalo.az aks get-credentials --resource-group <private-cluster-resource-group> --name <private-cluster-name>
Pomocí příkazu ověřte připojení ke clusteru
kubectl get
. Tento příkaz vrátí seznam uzlů clusteru.kubectl get nodes
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
Při vytváření privátního clusteru AKS pomocí
az aks create
příkazu s příznakem--disable-public-fqdn
zakažte veřejný plně kvalifikovaný název domény.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
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 clusteruaz aks update
AKS.az aks update \ --name <private-cluster-name> \ --resource-group <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
. Po vytvoření clusteru nemůžete tento prostředek změnit ani odstranit, protože může způsobit problémy s výkonem a selhání upgradu clusteru.- Pokud je privátní zóna DNS v jiném předplatném než cluster AKS, musíte poskytovatele Azure zaregistrovat
Microsoft.ContainerServices
v obou předplatných. - Můžete použít
fqdn-subdomain
CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID
pouze k poskytování subdomén schopností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. Cluster musí používat ověřování spravované identity přiřazené uživatelem.
- Pokud zadáváte
<subzone>
hodnotu , existuje limit 32 znaků pro<subzone>
název.
- Pokud je privátní zóna DNS v jiném předplatném než cluster AKS, musíte poskytovatele Azure zaregistrovat
Poznámka:
Můžete nakonfigurovat CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID
pomocí šablony ARM nebo Azure CLI. privateDNSZone
přijímá privátní zónu resourceID
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']"
}
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 \ --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
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 \ --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
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 \ --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
Aktualizace privátního clusteru z privátní zóny DNS na veřejný
Můžete aktualizovat pouze z byo
nebo system
do none
. Nepodporuje se žádná jiná kombinace aktualizačních hodnot. Před aktualizací se ujistěte, že se připojujete k privátnímu clusteru.
Upozorňující
Když aktualizujete privátní cluster z byo
nebo system
na none
, změní se uzly agenta tak, aby používaly veřejný plně kvalifikovaný název domény. V clusteru AKS, který používá škálovací sady virtuálních počítačů Azure, se provede upgrade image uzlu za účelem aktualizace uzlů pomocí veřejného plně kvalifikovaného názvu domény.
Aktualizujte privátní cluster z
byo
příkazu nebonone
system
hoaz aks update
pomocí následujících příznaků:az aks update \ --name <private-cluster-name> \ --resource-group <private-cluster-resource-group> \ --private-dns-zone none
Možnosti připojení k privátnímu clusteru
Koncový bod serveru rozhraní API nemá žádnou veřejnou IP adresu. Pokud chcete spravovat server rozhraní API, musíte 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 .
- Použijte instanci Cloud Shellu nasazenou do podsítě, která je připojená k serveru rozhraní API pro cluster.
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í
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.
- Na webu Azure Portal přejděte do skupiny prostředků uzlu a vyberte prostředek privátní zóny DNS.
- V nabídce služby v části Správa DNS vyberte Přidat propojení>virtuální sítě.
- Na stránce Přidat propojení virtuální sítě nakonfigurujte následující nastavení:
- Název odkazu: Zadejte název propojení virtuální sítě.
- Virtuální síť: Vyberte virtuální síť, která obsahuje virtuální počítač.
- Výběrem možnosti Vytvořit vytvořte propojení virtuální sítě.
- Přejděte do skupiny prostředků, která obsahuje virtuální síť vašeho clusteru, a vyberte prostředek vaší virtuální sítě.
- V nabídce služby v části Nastavení vyberte Přidat partnerské vztahy>.
- Na stránce Přidat partnerský vztah nakonfigurujte následující nastavení:
- Název odkazu peeringu: Zadejte název odkazu partnerského vztahu.
- Virtuální síť: Vyberte virtuální síť virtuálního počítače.
- Výběrem možnosti Přidat vytvořte odkaz peeringu.
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. Ve virtuální síti, která obsahuje spotřebovávají prostředky, vytvořte nový privátní koncový bod a pak ve stejné síti 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, je 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:
- Na domovské stránce webu Azure Portal vyberte Vytvořit prostředek.
- Vyhledejte privátní koncový bod a vyberte Vytvořit>privátní koncový bod.
- Vyberte Vytvořit.
- Na kartě Základy nakonfigurujte následující nastavení:
- Podrobnosti projektu
- Předplatné: Vyberte předplatné, ve kterém se nachází váš privátní cluster.
- Skupina prostředků: Vyberte skupinu prostředků, která obsahuje vaši virtuální síť.
- Podrobnosti o instanci
- Název: Zadejte název privátního koncového bodu, například myPrivateEndpoint.
- Oblast: Vyberte stejnou oblast jako vaše virtuální síť.
- Podrobnosti projektu
- Vyberte Další: Prostředek a nakonfigurujte následující nastavení:
- Metoda připojení: V adresáři vyberte Připojit 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 nakonfigurujte následující nastavení:
- 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. Nezapomeňte vytvořit tuto zónu DNS ve virtuální síti obsahující spotřebovávají prostředky.
- Na webu Azure Portal přejděte do skupiny prostředků uzlu a vyberte prostředek privátní zóny DNS.
- V nabídce služby v části Správa DNS vyberte sady záznamů a poznamenejte si následující:
- 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 domovské stránce 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 nakonfigurujte následující nastavení:
- Podrobnosti o projektu:
- Vyberte své předplatné.
- Vyberte skupinu prostředků, ve které jste vytvořili privátní koncový bod.
- Podrobnosti o instanci
- Název: 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.
- V nabídce služby v části Správa DNS vyberte Sady>záznamů Přidat.
- Na stránce Přidat sadu záznamů nakonfigurujte následující nastavení:
- 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
- Vyberte Přidat a vytvořte
A
záznam.
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 nabídce služby v části Správa DNS vyberte Přidat propojení>virtuální sítě.
- Na stránce Přidat propojení virtuální sítě nakonfigurujte následující nastavení:
- 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 možnosti Vytvořit 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.
- Pokud aktualizujete záznamy DNS v privátní zóně DNS, ujistěte se, že hostitel, ze kterého se pokoušíte připojit, používá aktualizované záznamy DNS. Můžete to ověřit pomocí
nslookup
příkazu. Pokud si všimnete, že se aktualizace ve výstupu neprojeví, možná budete muset vyprázdnit mezipaměť DNS na svém počítači a zkusit to znovu.
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.
Azure Kubernetes Service