Sdílet prostřednictvím


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

  1. 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>
    
  2. 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.

  1. Pomocí příkazu nakonfigurujte kubectl připojení ke clusteru az 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>
    
  2. 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 clusteru az 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át private.<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.

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 nebo none system ho az 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:

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.

  1. Na webu Azure Portal přejděte do skupiny prostředků uzlu a vyberte prostředek privátní zóny DNS.
  2. V nabídce služby v části Správa DNS vyberte Přidat propojení>virtuální sítě.
  3. 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č.
  4. Výběrem možnosti Vytvořit vytvořte propojení virtuální sítě.
  5. Přejděte do skupiny prostředků, která obsahuje virtuální síť vašeho clusteru, a vyberte prostředek vaší virtuální sítě.
  6. V nabídce služby v části Nastavení vyberte Přidat partnerské vztahy>.
  7. 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.
  8. 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.

Centrum a paprsky privátního clusteru

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-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. 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:

  1. Na domovské stránce webu Azure Portal vyberte Vytvořit prostředek.
  2. Vyhledejte privátní koncový bod a vyberte Vytvořit>privátní koncový bod.
  3. Vyberte Vytvořit.
  4. 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íť.
  5. 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.
  6. Vyberte Další: Virtuální síť a nakonfigurujte následující nastavení:
    • Sítě
      • Virtuální síť: Vyberte svou virtuální síť.
      • Podsíť: Vyberte podsíť.
  7. Vyberte Další: DNS>Next: Značky a (volitelně) podle potřeby nastavte hodnoty klíče.
  8. 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.

  1. Na webu Azure Portal přejděte do skupiny prostředků uzlu a vyberte prostředek privátní zóny DNS.
  2. 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).
  3. Na domovské stránce 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 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 .
  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. V nabídce služby v části Správa DNS vyberte Sady>záznamů Přidat.
  3. 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.
  4. 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).

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 nabídce služby v části Správa DNS vyberte Přidat propojení>virtuální sítě.
  3. 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.
  4. 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.