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 informací, které potřebujete ve virtuální síti. Najdete tady 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 s modulem AKS používá modul plug-in sítě kubenet. Modul AKS ve službě Azure Stack Hub podporuje také modul plug-in sítě 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ů agentů 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.
  • Vezměte v úvahu, že doporučená velikost podsítí uzlu závisí na typu použité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. Podívejte se na příklady kubenet a Azure CNI níže.
  • Adresní 169.254.0.0/16 prostor se nedá použít 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í Azure Portal.

Ve virtuální síti vytvořte novou podsíť. Budete muset získat ID prostředku podsítě a rozsah IP adres. ID prostředku a rozsah použijete v modelu rozhraní API při nasazování 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 virtuální sítě.

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

  5. Přidejte název a rozsah adres pomocí notace 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 klíče vnetSubnetId 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 volbě adresních prostorů a rozsahů, které chcete použít v clusteru Kubernetes, zvažte následující faktory:

  • Překrývající se adresní prostory můžou způsobit kolize IP adres nebo chyby komunikace. Pokud chcete snížit riziko překrývajících se IP adres, zvolte pro novou virtuální síť jedinečný adresní prostor.
  • Adresní prostory v rozsahech 10/8, 172.16/12a 192.168/16 se často používají pro privátní sítě a můžou být používány stávající infrastrukturou datového centra. Pokud vaše aplikace Kubernetes používají prostředky ve vašem datacentru, snižte riziko kolize výběrem adresního prostoru pro vlastní virtuální síť, který se liší od adresního prostoru vašeho datacentra.
  • Doporučujeme použít vyhrazenou podsíť pro cluster Kubernetes.
  • 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 chcete použít partnerský vztah virtuálních sítí. Překrývající se adresní prostory mohou ovlivnit vaši schopnost povolit partnerský vztah.

Získání bloků IP adres

Modul AKS podporuje nasazení ve stávající virtuální síti. Při nasazení do existující virtuální sítě používá váš cluster bloky po sobě jdoucích adres pro uzly agentů, uzly řídicí roviny, služby clusteru a kontejnery (pody). Každý blok adres 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ě. Výběr bloků adres mimo adresní prostor virtuální sítě může způsobit problémy s připojením.

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

  • Blok adres uzlů: Toto je blok adres 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 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. Uzly a kontejnery Azure CNI získávají adresy ze stejného bloku adres, a proto při volbě rozsahu adres při použití Azure CNI vezměte v úvahu počet kontejnerů, které chcete nasadit do clusteru.
  • Blok adresy služeb: Jedná se o blok adresy, 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: Toto je blok adres, ze kterého pody získají 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 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 další dvě 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 adres podsítě. Modul AKS vyžaduje rozsah až 16 nepoužívaných IP adres, pokud používáte více uzlů řídicí roviny. Cluster bude používat jednu IP adresu pro každou řídicí rovinu až pět uzlů řídicí roviny. Modul AKS bude také vyžadovat dalších 10 IP adres po posledním uzlu řídicí roviny pro rezervaci IP adres pro headroom. Nakonec nástroj pro vyrovnávání zatížení použije další IP adresu po uzlech řídicí roviny a rezervaci míst pro hlavu, celkem 16. Při umísťování bloku IP adres vyžaduje podsíť následující přidělení existujících IP adres:

  • První čtyři IP adresy a poslední IP adresa jsou rezervované a nelze je použít v žádné podsíti Azure.
  • Vyrovnávací paměť s 16 IP adresami 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 k IP adrese na konci 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. Následující tabulka uvádí adresy a důležité informace:

Rozsah podsítě /24 Číslo Poznámka
172.100.0.0 - 172.100.0.3 4 Rezervováno v podsíti Azure.
172.100.0.224-172.100.0.238 14 Počet IP adres pro cluster definovaný modulem AKS.

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

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

U větších podsítí, například /16 s více než 60 tisíci 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 mimo prvních 24 adres v prostoru IP adres, aby cluster mohl být odolný při deklarace adres.

Příklad bloků adres Kubenet

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í síťového modulu plug-in kubenet s vyhrazenými podsítěmi pro uzel řídicí roviny a fondy uzlů agenta se třemi uzly na fond.

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

Blok adres (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
Blokování 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 by vlastnost firstConsecutiveStaticIP 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 clusteru pomocí síťového modulu plug-in 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 rámci CIDR10.0.0.0/8, použijte jako modul plug-in sítě kubenet.

Blok adres (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
Uzly agentů & blok clusteru 172.24.128.0/17 172.24.128.0 - 172.24.255.255 32 768 - 5 rezervovaných = 32 763
Blokování 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 by vlastnost firstConsecutiveStaticIP 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 Description
vnetSubnetId /subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/control-plane-sn Zadejte ID cesty azure Resource Manager podsítě. Tato hodnota se mapuje na blok adres uzlů řídicí roviny výše.
firstConsecutiveStaticIP 10.100.0.239 Přiřaďte vlastnosti firstConsecutiveStaticIP konfigurace IP adresu, která je blízko konce 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 Description
vnetSubnetId /subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/agents-sn Zadejte ID cesty azure Resource Manager podsítě. Tato hodnota se mapuje na výše uvedený blok adres uzlů agenta.

V orchestratorProfilevyhledejte kubernetesConfig a nastavte následující hodnotu:

Pole Příklad Description
clusterSubnet 10.100.128.0/17 Podsíť PROTOKOLU IP používaná 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í oblasti virtuální sítě. Při povoleném Azure CNI je výchozí hodnota 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, bude tato podsíť přiřazena pouze k jednomu uzlu. Jiný uzel nebude mít přiřazenou síť POD, protože vám dojde místo pro IP adresy, takže nebudou v clusteru připravené.
serviceCidr 10.100.16.0/20 Podsíť PROTOKOLU IP používaná 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í prostor 10.100.0.0/16 sítě, kde podsíť pro control-plane-sn je 10.100.0.0/24 a agents-sn je 10.100.1.0/24

"masterProfile": {
  ...
  "vnetSubnetId": "/subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/control-plane-sn",
  "firstConsecutiveStaticIP": "10.100.0.239",
  ...
},
...
"agentPoolProfiles": [
  {
    ...
    "vnetSubnetId": "/subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/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í prostor 172.24.0.0/16 sítě, kde podsíť pro control-plane-sn je 172.24.0.0/24 a k8s-sn je 172.24.128.0/17

"masterProfile": {
  ...
  "vnetSubnetId": "/subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/control-plane-sn",
  "firstConsecutiveStaticIP": "172.24.0.239",
  ...
},
...
"agentPoolProfiles": [
  {
    ...
    "vnetSubnetId": "/subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/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 : networkPluginkubenet 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í tabulka 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 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í tabulka 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ě podsítě masterProfile .

Poznámka

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

Další kroky