Vytvoření privátního clusteru Azure Kubernetes Service

V privátním clusteru má řídicí rovina nebo server API interní IP adresy definované v dokumentu RFC1918 – Přidělování adres pro privátní internet . Pomocí privátního clusteru můžete zajistit síťový provoz mezi serverem rozhraní API a fondy uzlů pouze v privátní síti.

Řídicí rovina nebo server api se nachází v předplatném Azure spravovaném Azure Kubernetes Service (AKS). Cluster nebo fond uzlů zákazníka je v předplatném zákazníka. Server a fond clusteru nebo 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 zákazníka.

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 záznamem A ve veřejném DNS Azure. Uzly agenta stá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.

Dostupnost v oblastech

Privátní cluster je k dispozici ve veřejných oblastech, Azure Government a oblastech Azure China 21Vianet, kde se podporuje AKS.

Požadavky

  • Azure CLI = 2.28.0 nebo Azure CLI >s rozšířením aks-Preview 0.5.29 nebo novějším.
  • Pokud používáte ARM nebo rest API, verze rozhraní API AKS musí být 2021-05-01 nebo novější.
  • Služba Private Link je podporována pouze na Azure Load Balancer Standard. Základní Azure Load Balancer se nepodporuje.
  • Pokud chcete použít vlastní server DNS, přidejte ip adresu Azure DNS 168.63.129.16 jako nadřazený server DNS na vlastním serveru DNS. Další informace o IP adrese Azure DNS najdete v tématu Co je IP adresa 168.63.129.16?

Vytvoření privátního clusteru AKS

Vytvoření skupiny prostředků

Vytvořte skupinu prostředků nebo použijte existující skupinu prostředků pro cluster AKS.

az group create -l westus -n MyResourceGroup

Výchozí základní sítě

az aks create -n <private-cluster-name> -g <private-cluster-resource-group> --load-balancer-sku standard --enable-private-cluster  

Kde --enable-private-cluster je povinný příznak privátního clusteru.

Pokročilé sítě

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> \
    --docker-bridge-address 172.17.0.1/16 \
    --dns-service-ip 10.2.0.10 \
    --service-cidr 10.2.0.0/24 

Kde --enable-private-cluster je povinný příznak privátního clusteru.

Poznámka

Pokud se ciDR (172.17.0.1/16) koliduje s CIDR podsítě, změňte adresu mostu Dockeru odpovídajícím způsobem.

Zakázání veřejného plně kvalifikovaného názvu domény

K zakázání veřejného plně kvalifikovaného názvu domény je možné využít následující parametry.

Zakázání veřejného plně kvalifikovaného názvu domény v novém clusteru AKS

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

az aks update -n <private-cluster-name> -g <private-cluster-resource-group> --disable-public-fqdn

Konfigurace zóny Privátní DNS

Ke konfiguraci Privátní DNS zóny je možné využít následující parametry.

  • "system", což je také výchozí hodnota. Pokud je argument --private-dns-zone vynechán, služba AKS vytvoří ve skupině prostředků uzlu Privátní DNS zónu.
  • "none" (žádný), výchozí hodnota je veřejná DNS, což znamená, že AKS nevytvoří zónu Privátní DNS.
  • "CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID", což vyžaduje, abyste vytvořili zónu Privátní DNS v tomto formátu pro globální cloud Azure: privatelink.<region>.azmk8s.io nebo <subzone>.privatelink.<region>.azmk8s.io. Budete potřebovat ID prostředku této Privátní DNS zóny. Kromě toho budete potřebovat identitu přiřazenou uživatelem nebo instanční objekt s alespoň private dns zone contributor rolemi a network contributor rolemi.
    • Pokud je zóna Privátní DNS v jiném předplatném než cluster AKS, musíte v obou předplatných zaregistrovat Microsoft.ContainerServices.
    • "fqdn-subdomain" je možné využít pouze s "CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID" k poskytování možností subdomény privatelink.<region>.azmk8s.io

Vytvoření privátního clusteru AKS s Privátní DNS zónou

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í zónou Privátní DNS nebo Privátní DNS SubZone

# Custom Private DNS Zone name should be in 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í zónou Privátní DNS a vlastní subdoménou

# Custom Private DNS Zone name could be in 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>

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, budete muset použít virtuální počítač, který má přístup k azure Virtual Network (VNet) clusteru AKS. Existuje několik možností pro navázání 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 měli jistotu, že se nepřekrývají rozsahy.

Peering virtuálních sítí

Jak už bylo zmíněno, partnerský vztah virtuálních sítí je jedním ze způsobů přístupu k privátnímu clusteru. Pokud chcete použít partnerský vztah virtuální sítě, musíte nastavit propojení mezi virtuální sítí a privátní zónou DNS.

  1. V Azure Portal přejděte do skupiny prostředků uzlu.
  2. Vyberte privátní zónu DNS.
  3. V levém podokně vyberte propojení virtuální sítě .
  4. 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 na zónu DNS trvá několik minut.
  5. V Azure Portal přejděte do skupiny prostředků, která obsahuje virtuální síť vašeho clusteru.
  6. V pravém podokně vyberte virtuální síť. Název virtuální sítě je ve formátu aks-vnet-*.
  7. V levém podokně vyberte Partnerské vztahy.
  8. Vyberte Přidat, přidejte virtuální síť virtuálního počítače a pak vytvořte partnerský vztah.
  9. Přejděte do virtuální sítě, ve které máte virtuální počítač, vyberte Partnerské vztahy, vyberte virtuální síť AKS a pak vytvořte partnerský vztah. Pokud rozsahy adres ve virtuální síti AKS a kolidují virtuální síť virtuálního počítače, partnerský vztah selže. 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.

Centrum privátního clusteru a paprskové

  1. Ve výchozím nastavení se při zřizování privátního clusteru vytvoří privátní koncový bod (1) a privátní zóna DNS (2) ve skupině prostředků spravovaných clusterem. Cluster používá záznam A v privátní zóně k překladu IP adresy privátního koncového bodu pro komunikaci se serverem rozhraní API.

  2. 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é vyřešit pouze hostiteli v této propojené virtuální síti. Ve scénářích, kdy není ve virtuální síti nakonfigurovaný žádný vlastní DNS (výchozí), funguje to bez problémů jako hostitelé v bodě 168.63.129.16 pro DNS, který může kvůli propojení překládat záznamy v privátní zóně DNS.

  3. 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í na základě událostí (například Azure Event Grid a Azure Functions).

Poznámka

Podmíněné předávání nepodporuje subdomény.

Poznámka

Pokud používáte funkci Bring Your Own Route Table s kubenetem a Bring Your Own DNS s privátním clusterem, vytvoření clusteru selže. Aby bylo vytvoření úspěšné, budete muset přidružit směrovací tabulku ve skupině prostředků uzlu k podsíti po selhání vytvoření clusteru.

Použití připojení privátního koncového bodu

Privátní koncový bod je možné nastavit tak, aby Virtual Network Azure nemusel být peered pro 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 nutné pro prostředí správně nastavit privátní DNS. Další podrobnosti najdete v dokumentaci k překladu názvů virtuálních sítí .

  1. V nabídce portálu Azure nebo na domovské stránce 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 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 virtuální síť nezobrazí na kartě Konfigurace .

  1. Vyberte Další: Prostředek po dokončení.
  2. Na kartě Prostředek nastavte následující možnosti:
    • Metoda připojení: Připojení k prostředku Azure v adresáři
    • Předplatné: Vyberte předplatné Azure, ve kterém se nachází privátní cluster.
    • Typ prostředku: Microsoft.ContainerService/managedClusters
    • Zdroj: myPrivateAKSCluster
    • Cílový dílčí prostředek: správa
  3. Vyberte Další: Konfigurace po dokončení.
  4. Na kartě Konfigurace nastavte následující možnosti:
    • Sítě:
      • Virtuální síť: myVirtualNetwork
      • Podsíť: mySubnet
  5. Vyberte Další: Značky po dokončení.
  6. (Volitelné) Na kartě Značky nastavte podle potřeby hodnoty klíčů.
  7. Vyberte Další: Zkontrolovat a vytvořit a potom po dokončení ověření vyberte Vytvořit .

Zaznamenejte privátní IP adresu privátního koncového bodu. Tato privátní IP adresa se používá v pozdějším kroku.

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. V 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 privátního názvu DNS)
    • hodnota TTL (time-to-live)
  3. V nabídce portálu Azure nebo na domovské stránce vyberte Vytvořit prostředek.
  4. Vyhledejte zónu Privátní DNS a vyberte Vytvořit > zónu Privátní DNS.
  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é byl vytvořen privátní koncový bod.
    • Podrobnosti o instanci:
      • Zadejte název zóny DNS načtené z předchozích kroků.
      • Výchozí nastavení oblasti do umístění skupiny prostředků Azure
  6. Vyberte Zkontrolovat a vytvořit po dokončení a vyberte Vytvořit po dokončení ověření.

Po vytvoření privátní zóny DNS vytvořte záznam A. Tento záznam přidruží privátní koncový bod k privátnímu clusteru.

  1. Přejděte do privátní zóny DNS vytvořené v předchozích krocích.
  2. Na stránce Přehled vyberte + Sada 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: A – záznam aliasu na adresu IPv4
    • TTL: Zadejte číslo, které odpovídá záznamu ze zóny DNS privátního clusteru záznamu A.
    • Jednotka TTL: Změňte hodnotu rozevíracího seznamu tak, aby odpovídala záznamu A ze zóny DNS privátního clusteru.
    • IP adresa: Zadejte IP adresu privátního koncového bodu, který byl vytvořen dříve.

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 vytvořené v předchozích krocích.
  2. V levém podokně vyberte propojení virtuální sítě.
  3. Vytvořte nový odkaz pro přidání virtuální sítě do privátní zóny DNS. Dostupnost odkazu na zónu DNS trvá několik minut.

Upozornění

Pokud je privátní cluster zastavený a restartován, odebere se a znovu vytvoří původní služba privátního clusteru, která 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 uživatelem vytvořené privátní koncové body propojené s privátním clusterem. Záznamy DNS budou také potřeba aktualizovat, pokud mají znovu vytvořené privátní koncové body nové IP adresy.

Omezení

  • Autorizované rozsahy IP adres se nedají použít u koncového bodu serveru privátního rozhraní API, ale vztahují se jenom na veřejný server rozhraní API.
  • Azure Private Link omezení služby platí pro privátní clustery.
  • Žádná podpora agentů hostovaných Microsoftem v Azure DevOps s privátními clustery. Zvažte použití agentů v místním prostředí.
  • Pokud potřebujete povolit Azure Container Registry pracovat 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.
  • Podpora převodu existují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.