Sdílet prostřednictvím


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

Cluster Azure Kubernetes Service (AKS) nakonfigurovaný s integrací sítě VNet API Serveru projektuje koncový bod rozhraní API přímo do delegované podsítě ve virtuální síti, kam je služba AKS nasazena. 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.

Připojení k serveru rozhraní API

Řídicí rovina nebo server rozhraní API je v předplatném Azure spravovaném AKS. Váš klastr nebo pool 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 nainstalované Azure CLI verze 2.73.0 nebo novější. Verzi můžete zkontrolovat pomocí az --version příkazu.

Omezení

  • Integrace virtuální sítě s rozhraním API Server nepodporuje šifrování virtuální sítě. Clustery nasazené na AKS uzlové typy v3 nebo starší (které nepodporují šifrování virtuální sítě) jsou povoleny, ale provoz nebude š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. Podrobnosti najdete v tématu Podporované skladové položky virtuálních počítačů AKS .

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 AKS s integrací virtuální sítě API Serveru pomocí spravované virtuální sítě

Clustery AKS můžete nakonfigurovat s integrací virtuální sítě API Serveru ve spravované virtuální síti nebo v režimu vlastní virtuální sítě. Můžete je vytvořit jako veřejné clustery (s přístupem k serveru ROZHRANÍ API dostupným prostřednictvím veřejné IP adresy) nebo privátních clusterů (kde je server rozhraní API přístupný pouze prostřednictvím privátního připojení virtuální sítě). Můžete také přepínat mezi veřejným a privátním stavem bez opětovného nasazení clusteru.

Vytvoření skupiny zdrojů

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

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

Nasazení veřejného clusteru

  • Nasaďte veřejný cluster AKS s integrací virtuální sítě API Serveru pro spravovanou az aks create virtuální síť pomocí příkazu s příznakem --enable-api-server-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 s integrací API Serveru do virtuální sítě pro spravovanou VNet pomocí příkazu s příznaky az aks create a --enable-api-server-vnet-integration.

    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
    

Vytvořte privátní AKS cluster s integrací VNet API Serveru pomocí vlastní virtuální sítě.

Pokud používáte bring-your-own VNet (vlastní virtuální síť), musíte vytvořit a delegovat podsíť serveru API do Microsoft.ContainerService/managedClusters, které udělí oprávnění službě AKS 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ň 9 IP adres. Nedostatek IP adres může bránit škálování API serveru a způsobit jeho výpadek.

Vytvoření skupiny zdrojů

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-api-server-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-api-server-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 na integraci virtuální sítě serveru API

Výstraha

Integrace virtuální sítě API Serveru je jednosměrná funkce citlivá na kapacitu.

  • Vyžaduje se ruční restartování.
    Po povolení integrace virtuální sítě serveru API pomocí az aks update --enable-apiserver-vnet-integration musíte kvůli přechodu prostředků řídicí roviny okamžitě restartovat cluster, aby se změna projevila. Toto restartování 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í nevyrezervuje kapacitu. Pokud se restartování zpozdí a kapacita do té doby přestane být dostupná, cluster se po zastavení nebo restartování nemusí spustit. Clustery, které tuto funkci povolily před obecnou dostupností (GA), nebo které se od povolení ještě nerestartovaly, neprojdou ověřením kapacity.

  • Funkci nelze zakázat.
    Po povolení je tato funkce trvalá. Integraci virtuální sítě serveru API nelze 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 je IP adresa serveru rozhraní API nakonfigurovaná v jakýchkoli pravidlech brány firewall nebo skupiny zabezpečení sítě, možná bude potřeba tato pravidla aktualizovat.

  • 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>
    

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í služby Azure Private Link můžete zveřejnit koncový bod serveru rozhraní API privátního clusteru s integrací virtuální sítě API Serveru. Následující kroky ukazují, jak vytvořit službu Private Link (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.

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-api-server-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í služby Private Link s integrací virtuální sítě serveru API najdete v tématu Integrace privátního propojení s virtuální sítí API Serveru.

Pravidla zabezpečení 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 Balancerem a serverem rozhraní API. Můžete také povolit veškerou komunikaci mezi Nástrojem pro vyrovnávání zatížení Azure a podsítím serveru API CIDR.

Další kroky