Sdílet prostřednictvím


Nasazení clusteru Kubernetes do vlastní virtuální sítě ve službě Azure Stack Hub

Cluster Kubernetes můžete nasadit pomocí modulu Azure Kubernetes Service (AKS) ve vlastní virtuální síti. Tento článek se zabývá vyhledáním potřebných informací ve vaší virtuální síti. Postup výpočtu IP adres používaných vaším clusterem, nastavení vales v modelu rozhraní API a nastavení směrovací tabulky a skupiny zabezpečení sítě.

Cluster Kubernetes ve službě Azure Stack Hub pomocí modulu AKS používá modul plug-in sítě kubenet. Modul AKS ve službě Azure Stack Hub podporuje také síťový modul plug-in Azure CNI.

Omezení při vytváření vlastní virtuální sítě

  • Vlastní virtuální síť musí být ve stejném předplatném jako všechny ostatní komponenty clusteru Kubernetes.
  • Fond uzlů řídicí roviny a fond uzlů agenta musí být ve stejné virtuální síti. Uzly můžete nasadit do různých podsítí ve stejné virtuální síti.
  • Podsíť clusteru Kubernetes musí používat rozsah IP adres v prostoru vlastního rozsahu IP adres virtuální sítě. Viz Získání bloku IP adres.
  • Zvažte, že doporučená velikost podsítí uzlů závisí na typu používaného síťového modulu plug-in. Obecně platí, že Azure CNI vyžaduje pro podsíť podporující fondy uzlů agenta větší počet IP adres než kubenet. Níže najdete příklady kubenetu a Azure CNI.
  • 169.254.0.0/16 Adresní prostor se nemusí používat pro vlastní virtuální sítě pro clustery Kubernetes.

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

V instanci služby Azure Stack Hub musíte mít vlastní virtuální síť. Další informace najdete v tématu Rychlý start: Vytvoření virtuální sítě pomocí webu Azure Portal.

Ve virtuální síti vytvořte novou podsíť. Budete muset získat ID prostředku podsítě a rozsah IP adres. Při nasazování clusteru použijete ID a rozsah prostředků v modelu rozhraní API.

  1. Otevřete uživatelský portál služby Azure Stack Hub v instanci služby Azure Stack Hub.

  2. Vyberte Všechny prostředky.

  3. Do vyhledávacího pole zadejte název vaší virtuální sítě.

  4. Vyberte Podsítě+ Podsítě> a přidejte podsíť.

  5. Přidejte název a rozsah adres pomocí zápisu CIDR. Vyberte OK.

  6. V okně Virtuální sítě vyberte Vlastnosti. Zkopírujte ID prostředku a pak přidejte /subnets/<nameofyoursubnect>. Tuto hodnotu použijete jako hodnotu vnetSubnetId klíče v modelu rozhraní API pro váš cluster. ID prostředku pro podsíť používá následující formát:
    /subscriptions/SUB_ID/resourceGroups/RG_NAME/providers/Microsoft.Network/virtualNetworks/VNET_NAME/subnets/SUBNET_NAME

    ID prostředku virtuální sítě

  7. V okně Virtuální sítě vyberte podsítě. Vyberte název podsítě, například control-plane-sn.

    Nepřidružujte podsíť ke skupině zabezpečení sítě (NSG).

    Blok CIDR virtuální sítě

  8. V okně podsítě si poznamenejte rozsah adres (BLOK CIDR) každé podsítě.

Důležité informace o výběru adresního prostoru

Při vytváření vlastní virtuální sítě zadáte adresní prostor IP adres vaší sítě a rozsah IP adres pro každou podsíť. Při výběru adresních prostorů a rozsahů pro použití v clusteru Kubernetes zvažte následující faktory:

  • Překrývající se adresní prostory můžou vést ke konfliktům IP adres nebo chybám komunikace. Pokud chcete snížit riziko překrývajících se IP adres, zvolte jedinečný adresní prostor pro novou virtuální síť.
  • Adresní prostory v 10/8sadě , 172.16/12a 192.168/16 rozsahy se často používají pro privátní sítě a mohou být používány vaší stávající infrastrukturou datacentra. Pokud vaše aplikace Kubernetes používají prostředky ve vašem datacentru, snižte riziko konfliktů tím, že zvolíte adresní prostor pro vlastní virtuální síť, která se liší od adresního prostoru vašeho datacentra.
  • Pro cluster Kubernetes doporučujeme použít vyhrazenou podsíť.
  • Pokud používáte více existujících virtuálních sítí, zvažte použití různých adresních prostorů v každé síti, pokud máte v úmyslu použít partnerský vztah virtuálních sítí. Překrývající se adresní prostory mohou ovlivnit vaši schopnost umožnit partnerský vztah.

Získání bloků IP adres

Modul AKS podporuje nasazení v existující virtuální síti. Když je cluster nasazený ve stávající virtuální síti, používá bloky po sobě jdoucích adres pro uzly agentů, uzly řídicí roviny, služby clusteru a kontejnery (pody). Každý blok adresy je možné přeložit do podsítě v rámci virtuální sítě. Všechny bloky adres v nasazení clusteru musí být součástí celkového adresního prostoru virtuální sítě. Volba bloků adres mimo adresní prostor virtuální sítě může vést k problémům s připojením.

Při nastavování clusteru Kubernetes se vyžaduje minimálně tři bloky adres:

  • Blok adres uzlů: Toto je blok adresy používaný k přiřazování adres uzlům clusteru. Může to být jeden blok adresy pro všechny uzly clusteru nebo můžou být samostatné bloky (podsítě) pro řídicí rovinu a fondy agentů. Při výběru rozsahu adres pro tento blok vezměte v úvahu počet uzlů v clusteru. Pro uzly Azure CNI a kontejnery získávají jejich adresy ze stejného bloku adres, a proto při výběru rozsahu adres při použití Azure CNI vezměte v úvahu počet kontejnerů, které chcete do clusteru nasadit.
  • Blok adres služeb: Jedná se o blok adres, ze kterého služby nasazené do clusteru Kubernetes získají adresu clusteru. Při výběru rozsahu adres pro tento blok vezměte v úvahu maximální počet služeb, které chcete v clusteru spustit.
  • Blok adresy clusteru: Jedná se o blok adresy, ze kterého budou pody získávat adresu clusteru. Při výběru rozsahu adres pro tento blok vezměte v úvahu maximální počet podů, které chcete v clusteru spustit. Jak už jsme zmínili dříve, pro Azure CNI jsou bloky adres clusteru a uzlů stejné.

Kromě bloků adres budete muset pro uzly řídicí roviny nastavit dvě další hodnoty. Budete muset znát počet IP adres, které budete muset pro cluster rezervovat, a první po sobě jdoucí statickou IP adresu v prostoru IP podsítě. Modul AKS vyžaduje rozsah až 16 nepoužívaných IP adres, když používáte více uzlů řídicí roviny. Cluster použije jednu IP adresu pro každou řídicí rovinu až pět uzlů řídicí roviny. Modul AKS bude také vyžadovat další 10 IP adres po posledním uzlu řídicí roviny pro rezervaci IP adres v hlavní místnosti. Nakonec nástroj pro vyrovnávání zatížení použije další IP adresu po uzlech řídicí roviny a rezervaci místnosti celkem 16. Při umísťování bloku IP adres vyžaduje podsíť následující přidělení stávajících IP adres:

  • První čtyři IP adresy a poslední IP adresa jsou rezervované a nejde je použít v žádné podsíti Azure.
  • Vyrovnávací paměť 16 IP adres by měla zůstat otevřená.
  • Hodnota první IP adresy vašeho clusteru by měla být na konci adresního prostoru, aby nedocházelo ke konfliktům IP adres. Pokud je to možné, přiřaďte firstConsecutiveStaticIP vlastnost IP adrese blízko konce dostupného adresního prostoru IP adres v podsíti.

Například pro cluster se třemi uzly řídicí roviny. Pokud používáte podsíť s 256 adresami, například 10.100.0.0/24, budete muset nastavit první po sobě jdoucí statickou IP adresu před 239. V následující tabulce jsou uvedené adresy a důležité informace:

Rozsah podsítě /24 Počet Poznámka:
172.100.0.0 - 172.100.0.3 4 Vyhrazeno v podsíti Azure.
172.100.0.224-172.100.0.238 14 Počet IP adres pro definovaný cluster modulu AKS

3 IP adresy pro 3 uzly řídicí roviny
10IPch
1 IP adresa nástroje pro vyrovnávání zatížení
172.100.0.238 - 172.100.0.254 16 Vyrovnávací paměť IP adres 16.
172.100.0.255 0 Vyhrazeno v podsíti Azure.

V tomto příkladu by vlastnost firstConsecutiveStaticIP byla 172.100.0.224.

U větších podsítí, například /16 s více než 60 tisíc adresami, nemusí být praktické nastavit přiřazení statických IP adres na konec síťového prostoru. Nastavte rozsah statických IP adres clusteru od prvních 24 adres v prostoru IP adres, aby cluster mohl být odolný při deklarování adres.

Příklad bloků adres Kubenetu

V následujícím příkladu vidíte, jak tyto různé aspekty vyplňují adresní prostor ve virtuální síti pro cluster pomocí modulu plug-in sítě kubenet s vyhrazenými podsítěmi pro uzel řídicí roviny a fondy uzlů agentů se třemi uzly na fond.

Adresní prostor virtuální sítě: 10.100.0.0/16.

Blok adresy (podsíť) CIDR Rozsah IP adres Počet IP adres (k dispozici)
Blok uzlů řídicí roviny 10.100.0.0/24 10.100.0.0 - 10.100.0.255 255 – 4 rezervované = 251
Blok uzlů agenta 10.100.1.0/24 10.100.1.0 - 10.100.1.255 255 – 4 rezervované = 251
Blok služeb 10.100.16.0/20 10.100.16.0 - 10.100.31.255 4 096 – 5 rezervovaných = 4 091
Blok clusteru 10.100.128.0/17 10.100.128.0 - 10.100.255.255 32 768 – 5 rezervovaných = 32 763

V tomto příkladu firstConsecutiveStaticIP by vlastnost byla 10.100.0.239.

Příklad bloků adres Azure CNI

V následujícím příkladu vidíte, jak tyto různé aspekty vyplňují adresní prostor ve virtuální síti pro cluster pomocí modulu plug-in sítě Azure CNI s vyhrazenými podsítěmi pro fondy řídicí roviny a uzlů agenta se třemi uzly na fond.

Adresní prostor virtuální sítě: 172.24.0.0/16.

Poznámka:

Pokud je rozsah veřejných IP adres ve vašem prostředí v rozsahu CIDR10.0.0.0/8, použijte jako síťový modul plug-in kubenet.

Blok adresy (podsíť) CIDR Rozsah IP adres Počet IP adres (k dispozici)
Blok uzlů řídicí roviny 172.24.0.0/24 172.24.0.0 - 172.24.0.255 255 – 4 rezervované = 251
Blok uzlů agentů a clusteru 172.24.128.0/17 172.24.128.0 - 172.24.255.255 32 768 – 5 rezervovaných = 32 763
Blok služeb 172.24.16.0/20 172.24.16.0 - 172.24.31.255 4 096 – 5 rezervovaných = 4 091

V tomto příkladu firstConsecutiveStaticIP by vlastnost byla 172.24.0.239.

Aktualizace modelu rozhraní API

Aktualizujte model rozhraní API použitý k nasazení clusteru z modulu AKS do vlastní virtuální sítě.

V masterProfile nastavte následující hodnoty:

Pole Příklad Popis
vnetSubnetId /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/control-plane-sn Zadejte ID cesty Azure Resource Manageru pro podsíť. Tato hodnota se mapuje na výše uvedený blok adresy uzlů řídicí roviny.
firstConsecutiveStaticIP 10.100.0.239 Přiřaďte vlastnosti firstConsecutiveStaticIP konfigurace IP adresu, která se blíží konci dostupného adresního prostoru IP adres v požadované podsíti. firstConsecutiveStaticIP platí pouze pro fond uzlů řídicí roviny.

V agentPoolProfiles nastavte následující hodnoty:

Pole Příklad Popis
vnetSubnetId /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/agents-sn Zadejte ID cesty Azure Resource Manageru pro podsíť. Tato hodnota se mapuje na výše uvedený blok adresy uzlů agenta.

V orchestratorProfile vyhledejte kubernetesConfig a nastavte následující hodnotu:

Pole Příklad Popis
clusterSubnet 10.100.128.0/17 Podsíť IP použitá k přidělování IP adres pro síťová rozhraní podů. Tato hodnota se mapuje na výše uvedený blok adresy clusteru. Podsíť musí být v adresní prostoru virtuální sítě. Pokud je povolený Azure CNI, výchozí hodnota je 10.240.0.0/12. Bez Azure CNI je výchozí hodnota 10.244.0.0/16. Místo podsítě /24 použijte /16. Pokud použijete /24, přiřadí se tato podsíť pouze k jednomu uzlu. Jiný uzel nebude mít přiřazenou síť POD, protože vám dojde místo PROTOKOLU IP, takže nebudou připravené v clusteru.
serviceCidr 10.100.16.0/20 Podsíť IP použitá k přidělování IP adres pro služby nasazené v clusteru. Tato hodnota se mapuje na výše uvedený blok služeb clusteru.
dnsServiceIP 10.100.16.10 IP adresa, která se má přiřadit ke službě DNS clusteru. Adresa musí pocházet z podsítě serviceCidr. Tato hodnota musí být nastavena při zadávání serviceCidr. Výchozí hodnota je adresa .10 podsítě serviceCidr.

Pokud například používáte kubenet:
S adresními prostory sítě, 10.100.0.0/16 kde je 10.100.0.0/24 agents-sn podsíť a control-plane-sn je10.100.1.0/24

"masterProfile": {
  ...
  "vnetSubnetId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/control-plane-sn",
  "firstConsecutiveStaticIP": "10.100.0.239",
  ...
},
...
"agentPoolProfiles": [
  {
    ...
    "vnetSubnetId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/agents-sn",
    ...
  },
    ...
"kubernetesConfig": [
  {
    ...
    "clusterSubnet": "10.100.128.0/17",
    "serviceCidr": "10.100.16.0/20",
    "dnsServiceIP" : "10.100.16.10",

    ...
  },

Pokud například používáte Azure CNI:
S adresními prostory sítě, 172.24.0.0/16 kde je 172.24.0.0/24 k8s-sn podsíť a control-plane-sn je172.24.128.0/17

"masterProfile": {
  ...
  "vnetSubnetId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/control-plane-sn",
  "firstConsecutiveStaticIP": "172.24.0.239",
  ...
},
...
"agentPoolProfiles": [
  {
    ...
    "vnetSubnetId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/k8s-sn",
    ...
  },
    ...
"kubernetesConfig": [
  {
    ...
    "clusterSubnet": "172.24.128.0/17",
    "serviceCidr": "172.24.16.0/20",
    "dnsServiceIP" : "172.24.16.10",
    ...
  },

Nasazení clusteru

Po přidání hodnot do modelu rozhraní API můžete cluster nasadit z klientského deploy počítače pomocí příkazu v modulu AKS. Pokyny najdete v tématu Nasazení clusteru Kubernetes.

Nastavení směrovací tabulky

Pokud například používáte kubenet networkPlugin: kubenet v objektu kubernetesConfig konfigurace modelu rozhraní API. Po nasazení clusteru se vraťte do virtuální sítě na portálu User Portal služby Azure Stack. V okně podsítě nastavte směrovací tabulku i skupinu zabezpečení sítě (NSG). Po úspěšném nasazení clusteru do vlastní virtuální sítě získejte ID prostředku směrovací tabulky z okna Síť ve skupině prostředků vašeho clusteru.

  1. Otevřete uživatelský portál služby Azure Stack Hub v instanci služby Azure Stack Hub.

  2. Vyberte Všechny prostředky.

  3. Do vyhledávacího pole zadejte název vaší virtuální sítě.

  4. Vyberte Podsítě a pak vyberte název podsítě, která obsahuje váš cluster.

    směrovací tabulka a skupina zabezpečení sítě

  5. Vyberte Směrovací tabulku a pak vyberte směrovací tabulku pro váš cluster.

  6. Ujistěte se, že se to provádí pro každou podsíť zadanou v modelu rozhraní API, včetně masterProfile podsítě.

Poznámka:

Vlastní virtuální síť pro cluster Kubernetes s Windows má známý problém.

Další kroky