Použití integrace virtuální sítě serveru API v Azure Kubernetes Service (AKS)

Platí pro: ✔️ AKS Automatic ✔️ AKS Standard

Cluster Azure Kubernetes Service (AKS) nakonfigurovaný s integrací virtuální sítě API Serveru projektuje koncový bod serveru rozhraní API přímo do delegované podsítě ve virtuální síti, ve které je nasazená služba AKS. Integrace VNet API serveru umožňuje síťovou komunikaci mezi API serverem a uzly klastru bez nutnosti privátního propojení nebo tunelu. Server rozhraní API je k dispozici za interní virtuální IP vyrovnávačem zatížení v delegované podsíti, kterou uzly využívají díky své konfiguraci. Pomocí integrace virtuální sítě serveru API můžete zajistit, aby síťový provoz mezi vaším serverem API a fondy uzlů zůstal pouze v privátní síti.

Pro většinu produkčních úloh je AKS Automatic doporučené výchozí prostředí pro AKS. Služba AKS Automatic je ve výchozím nastavení připravená pro produkční prostředí a zahrnuje integraci virtuální sítě API Serveru jako předkonfigurované funkce zabezpečení clusteru. Ve službě AKS Standard je integrace virtuální sítě serveru API volitelná a povolíte ji při vytváření clusteru nebo aktualizací existujícího clusteru.

Další informace o službě AKS Automatic najdete v článku Co je Azure Kubernetes Service (AKS) Automatic?

Integrace virtuální sítě serveru API v AKS Automatic a AKS Standard

Integrace virtuální sítě serveru API je dostupná v obou režimech clusteru AKS, ale nastavení se liší:

  • Automatická služba AKS: Integrace virtuální sítě serveru API je předem nakonfigurovaná.
  • AKS Standard: Integrace virtuální sítě serveru API je volitelná a musí být explicitně povolená.

U většiny produkčních scénářů začněte s AKS Automatic, abyste mohli používat výchozí hodnoty připravené pro produkční prostředí a snížit provozní režii.

Připojení k serveru rozhraní API

Řídicí rovina nebo server rozhraní API se nachází v předplatném spravovaném službou AKS v rámci Azure. Váš cluster nebo skupina uzlů je ve vašem předplatném Azure. Server a virtuální počítače, které tvoří uzly klastra, spolu mohou komunikovat prostřednictvím VIP serveru API a IP adres podů, jež se promítají do delegované podsítě.

Integrace virtuální sítě API Serveru je podporována pro veřejné nebo privátní clustery. Můžete přidat nebo odebrat veřejný přístup po zprovoznění clustru. Na rozdíl od integrovaných clusterů mimo virtuální síť vždy uzly agenta komunikují přímo s privátní IP adresou interního nástroje pro vyrovnávání zatížení (ILB) serveru API bez použití DNS. Veškerý provoz od uzlů k serveru API je uchováván v privátním síťovém prostředí a pro připojení serveru API k uzlu není vyžadován žádný tunel. Klienti mimo cluster, kteří potřebují komunikovat se serverem rozhraní API, to můžou dělat normálně, pokud je povolený přístup k veřejné síti. Pokud je přístup k veřejné síti zakázaný, měli byste postupovat podle stejné metodologie nastavení privátního DNS jako standardní privátní clustery.

Požadavky

  • Musíte mít nainstalovanou Azure CLI verze 2.73.0 nebo novější. Verzi můžete zkontrolovat pomocí az --version příkazu.
  • Pokud používáte vlastní virtuální síť, projděte si požadavky na virtuální síť.

Omezení

Následující omezení platí pro integraci virtuální sítě serveru API bez ohledu na to, jestli je předkonfigurovaná v AKS Automatic nebo explicitně povolená ve službě AKS Standard:

  • Integrace virtuální sítě API Serveru nepodporuje šifrování Virtual Network. Clustery nasazené na SKU uzlů AKS verze v3 nebo starší (které nepodporují šifrování virtuální sítě) jsou povoleny, ale provoz není šifrován. Clustery nasazené na AKS SKU uzlů v4 nebo novějších (které podporují šifrování virtuální sítě) jsou blokované, protože šifrované virtuální sítě nejsou kompatibilní s integrací virtuální sítě serveru API. Další informace najdete v tématu Podporované skladové položky virtuálních počítačů AKS.
  • Pokud chcete používat duální zásobníkovou síť, cluster potřebuje Kubernetes verze 1.26.3 nebo novější, síťový plug-in azure a režim síťového plug-inu overlay. Další informace najdete v Azure clusteru CNI se sítěmi se dvěma zásobníky.

Availability

  • Integrace virtuální sítě API Serveru je dostupná ve všech oblastech veřejného cloudu GA s výjimkou katarcentral.

Vytvoření clusteru s integrací virtuální sítě API Serveru

V AKS Automatic je předkonfigurovaná integrace virtuální sítě serveru API. Nevyžaduje se žádný explicitní --enable-apiserver-vnet-integration příznak.

Pomocí rychlého startu vytvořte automatický cluster AKS:

AKS Standard: spravovaná virtuální síť

Clustery AKS Standard můžete nakonfigurovat s integrací virtuální sítě API Serveru ve spravovaném režimu virtuální sítě jako veřejné nebo privátní clustery.

Poznámka:

Integrace virtuální sítě s rozhraním API Server není v katarcentralu dostupná.

Vytvoření skupiny zdrojů

Vytvořte skupinu prostředků pomocí příkazu az group create.

az group create --location <location> --name <resource-group>

Nasazení veřejného clusteru

Nasaďte veřejně přístupný cluster AKS Standard s integrací virtuální sítě serveru API pro spravovanou síť VNet pomocí příkazu az aks create s příznakem --enable-apiserver-vnet-integration.

az aks create --name <cluster-name> \
    --resource-group <resource-group> \
    --location <location> \
    --network-plugin azure \
    --enable-apiserver-vnet-integration \
    --generate-ssh-keys

Nasazení privátního clusteru

Nasaďte privátní cluster AKS Standard pro spravovanou virtuální síť s integrací serveru API do virtuální sítě pomocí příkazu az aks create s příznaky --enable-apiserver-vnet-integration a --enable-private-cluster.

az aks create --name <cluster-name> \
    --resource-group <resource-group> \
    --location <location> \
    --network-plugin azure \
    --enable-private-cluster \
    --enable-apiserver-vnet-integration \
    --generate-ssh-keys

AKS Standard: Přineste si vlastní virtuální síť

Pokud používáte vlastní virtuální síť, musíte vytvořit a delegovat podsíť serveru API na Microsoft.ContainerService/managedClusters. Toto delegování uděluje službě AKS oprávnění k vložení podů serveru API a interního nástroje pro vyrovnávání zatížení do této podsítě. Podsíť nemůžete použít pro žádné jiné úlohy, ale můžete ji použít pro více clusterů AKS umístěných ve stejné virtuální síti. Minimální podporovaná velikost podsítě serveru API je /28.

Identita clusteru potřebuje oprávnění k podsíti serveru API i podsíti uzlu. Nedostatek oprávnění v podsíti serveru API může způsobit selhání provisioningu.

Výstraha

Cluster AKS si v adresní prostoru podsítě vyhrazuje alespoň devět IP adres. Nedostatek IP adres může zabránit škálování serveru API a způsobit výpadek serveru API.

Poznámka:

Integrace virtuální sítě s rozhraním API Server není v katarcentralu dostupná.

Vytvoření skupiny zdrojů

Vytvořte skupinu prostředků pomocí příkazu az group create.

az group create --location <location> --name <resource-group>

Vytvoření virtuální sítě

  1. Vytvořte virtuální síť pomocí az network vnet create příkazu.

    az network vnet create --name <vnet-name> \
    --resource-group <resource-group> \
    --location <location> \
    --address-prefixes 172.19.0.0/16
    
  2. Pomocí příkazu vytvořte podsíť az network vnet subnet create serveru API.

    az network vnet subnet create --resource-group <resource-group> \
    --vnet-name <vnet-name> \
    --name <apiserver-subnet-name> \
    --delegations Microsoft.ContainerService/managedClusters \
    --address-prefixes 172.19.0.0/28
    
  3. Vytvořte podsíť clusteru az network vnet subnet create pomocí příkazu.

    az network vnet subnet create --resource-group <resource-group> \
    --vnet-name <vnet-name> \
    --name <cluster-subnet-name> \
    --address-prefixes 172.19.1.0/24
    

Vytvoření spravované identity a udělení oprávnění k virtuální síti

  1. Vytvořte spravovanou identitu pomocí az identity create příkazu.

    az identity create --resource-group <resource-group> --name <managed-identity-name> --location <location>
    
  2. Pomocí příkazu az role assignment create přiřaďte roli Network Contributor podsíti serveru API.

    az role assignment create --scope <apiserver-subnet-resource-id> \
    --role "Network Contributor" \
    --assignee <managed-identity-client-id>
    
  3. Pomocí příkazu az role assignment create přiřaďte roli Přispěvatel sítě k podsíti clusteru.

    az role assignment create --scope <cluster-subnet-resource-id> \
    --role "Network Contributor" \
    --assignee <managed-identity-client-id>
    

Nasazení veřejného clusteru

Nasazení veřejného clusteru AKS s integrací VNet s API serverem pomocí příkazu az aks create s příznakem --enable-apiserver-vnet-integration.

az aks create --name <cluster-name> \
    --resource-group <resource-group> \
    --location <location> \
    --network-plugin azure \
    --enable-apiserver-vnet-integration \
    --vnet-subnet-id <cluster-subnet-resource-id> \
    --apiserver-subnet-id <apiserver-subnet-resource-id> \
    --assign-identity <managed-identity-resource-id> \
    --generate-ssh-keys

Nasazení privátního clusteru

Nasazení privátního clusteru AKS s integrací API Serveru do virtuální sítě pomocí příkazu az aks create s příznaky --enable-apiserver-vnet-integration a --enable-private-cluster.

az aks create --name <cluster-name> \
    --resource-group <resource-group> \
    --location <location> \
    --network-plugin azure \
    --enable-private-cluster \
    --enable-apiserver-vnet-integration \
    --vnet-subnet-id <cluster-subnet-resource-id> \
    --apiserver-subnet-id <apiserver-subnet-resource-id> \
    --assign-identity <managed-identity-resource-id> \
    --generate-ssh-keys

Převod existujícího clusteru AKS Standard na integraci virtuální sítě serveru API

Výstraha

Integrace virtuální sítě API Serveru je jednosměrná funkce citlivá na kapacitu. Pokud povolíte integraci virtuální sítě serveru API v existujícím clusteru AKS Standard, platí následující omezení:

  • Je nutný ruční restart: Po povolení integrace serveru API do virtuální sítě pomocí az aks update --enable-apiserver-vnet-integration je kvůli přechodu prostředků řídicí roviny nutné cluster okamžitě restartovat, aby se změna projevila. Tento restart není automatizovaný. Zpoždění restartování zvyšuje riziko nedostupnosti kapacity, což může zabránit spuštění serveru rozhraní API. Restartování clusteru také zajišťuje, aby se všechny uzly spolehlivě znovu připojily k novému koncovému bodu API serveru.
  • Kapacita se ověří, ale není rezervovaná: AKS ověří regionální kapacitu, když povolíte funkci v existujícím clusteru, ale toto ověření nevyhradí kapacitu. Pokud restart odložíte a kapacita přestane být mezitím k dispozici, cluster se po zastavení nebo restartu nemusí podařit spustit. Clustery, které tuto funkci povolily před obecnou dostupností (GA) nebo se ještě nerestartovaly od povolení, neprocházejí ověřením kapacity.
  • Funkci nejde zakázat: Po povolení je tato funkce trvalá. Integraci API serveru do virtuální sítě nemůžete zakázat.

Tento upgrade provádí upgrade verze obrazů uzlů ve všech fondech uzlů a restartuje všechny úlohy během jejich průběžného upgradu.

Výstraha

Převod clusteru na integraci s virtuální sítí API serveru vede ke změně IP adresy serveru API, zatímco název hostitele zůstává stejný. Pokud nastavíte IP adresu serveru rozhraní API v bránách firewall nebo v pravidlech skupin zabezpečení sítě, možná budete muset tato pravidla aktualizovat.

  1. Aktualizujte svůj cluster na integraci VNet serveru API pomocí příkazu az aks update s příznakem --enable-apiserver-vnet-integration.

    az aks update --name <cluster-name> \
        --resource-group <resource-group> \
        --enable-apiserver-vnet-integration \
        --apiserver-subnet-id <apiserver-subnet-resource-id>
    
  2. Restartujte cluster pomocí příkazů [az aks stop][az-aks-stop] a [az aks start][az-aks-start].

    az aks stop --name <cluster-name> --resource-group <resource-group>
    az aks start --name <cluster-name> --resource-group <resource-group>
    

Povolení nebo zakázání režimu privátního clusteru v existujícím clusteru s integrací virtuální sítě API Serveru

Clustery AKS nakonfigurované s integrací virtuální sítě API Serveru můžou mít povolený nebo zakázaný režim přístupu k veřejné síti nebo privátní cluster bez opětovného nasazení clusteru. Název hostitele serveru API se nezmění, ale veřejné položky DNS se v případě potřeby upraví nebo odeberou.

Poznámka:

--disable-private-cluster je aktuálně ve verzi Preview. Další informace najdete v tématu Referenční informace a úrovně podpory.

Povolení režimu privátního clusteru

Režim privátního clusteru povolte pomocí příkazu az aks update s příznakem --enable-private-cluster.

az aks update --name <cluster-name> \
    --resource-group <resource-group> \
    --enable-private-cluster \
    --enable-apiserver-vnet-integration \
    --apiserver-subnet-id <apiserver-subnet-resource-id>

Zakázání režimu privátního clusteru

Zakažte režim privátního clusteru pomocí příkazu az aks update s příznakem --disable-private-cluster.

az aks update --name <cluster-name> \
    --resource-group <resource-group> \
    --disable-private-cluster

Připojení ke clusteru pomocí kubectl

Nakonfigurujte kubectl pro připojení ke svému clusteru pomocí příkazu az aks get-credentials.

az aks get-credentials --resource-group <resource-group> --name <cluster-name>

Pomocí Azure Private Link můžete zpřístupnit koncový bod API serveru privátního clusteru s integrací virtuální sítě API Serveru. Následující kroky ukazují, jak vytvořit službu Private Link Service (PLS) ve virtuální síti clusteru a připojit se k ní z jiné virtuální sítě nebo předplatného pomocí privátního koncového bodu.

Poznámka:

Integrace virtuální sítě s rozhraním API Server není v katarcentralu dostupná.

Vytvoření privátního clusteru pro integraci sítě VNet s rozhraním API Server

Vytvořte privátní klastr AKS s integrací virtuální sítě API Serveru pomocí az aks create příkazu s příznaky --enable-apiserver-vnet-integration a --enable-private-cluster.

az aks create --name <cluster-name> \
    --resource-group <resource-group> \
    --location <location> \
    --enable-private-cluster \
    --enable-apiserver-vnet-integration

Další pokyny k nastavení Private Link s integrací virtuální sítě API Serveru najdete v tématu Private Link s integrací virtuální sítě API Serveru.

Pravidla zabezpečení skupiny zabezpečení sítě (NSG)

Ve výchozím nastavení je povolený veškerý provoz v rámci virtuální sítě. Pokud jste ale přidali pravidla NSG pro omezení provozu mezi různými podsítěmi, ujistěte se, že pravidla zabezpečení NSG povolují následující typy komunikace:

Cíl Zdroj Protokol Přístav Používání
CIDR pro podsíť serveru API Podsíť clusteru protokol TCP 443 a 4443 Vyžaduje se k povolení komunikace mezi uzly a serverem rozhraní API.
CIDR pro podsíť serveru API Azure Load Balancer protokol TCP 9988 Vyžaduje se k povolení komunikace mezi Azure Load Balancer a serverem rozhraní API. Můžete také povolit veškerou komunikaci mezi Azure Load Balancer a CIDR podsítě serveru API.