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ťte az 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át private.<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 nonesystem 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:

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.

  1. Z prohlížeče přejděte na web Azure Portal.
  2. Na webu Azure Portal přejděte do skupiny prostředků uzlu.
  3. Vyberte privátní zónu DNS.
  4. V levém podokně vyberte Virtuální síť.
  5. 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.
  6. Na webu Azure Portal přejděte do skupiny prostředků, která obsahuje virtuální síť vašeho clusteru.
  7. V pravém podokně vyberte virtuální síť. Název virtuální sítě je ve formátu aks-vnet-*.
  8. V levém podokně vyberte Partnerské vztahy.
  9. 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:

Private cluster hub and spoke

  • 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-01rozhraní 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:

  1. Z prohlížeče přejděte na web Azure Portal.
  2. Z nabídky portálu Azure vyberte možnost Vytvořit prostředek.
  3. Vyhledejte privátní koncový bod a vyberte Vytvořit > privátní koncový bod.
  4. Vyberte Vytvořit.
  5. 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.

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íť.

  1. 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.
  2. 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íť.
  3. Vyberte Další: DNS>Next: Značky a (volitelně) podle potřeby nastavte hodnoty klíče.
  4. 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:

  1. Na webu Azure Portal přejděte do skupiny prostředků uzlu.
  2. 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).
  3. Na webu Azure Portal vyberte Vytvořit prostředek.
  4. Vyhledejte Privátní DNS zónu a vyberte Vytvořit > Privátní DNS zónu.
  5. 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 .
  6. 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:

  1. Přejděte do privátní zóny DNS, kterou jste vytvořili v předchozích krocích.
  2. Na stránce Přehled vyberte Sadu záznamů.
  3. 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.

Důležité

Při vytváření záznamu A použijte pouze název a ne plně kvalifikovaný název domény (FQDN).

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:

  1. Přejděte do privátní zóny DNS, kterou jste vytvořili v předchozích krocích.
  2. V levém podokně vyberte propojení virtuální sítě.
  3. 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.
  4. 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.