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.
- Diskuzi o síťovém modulu plug-in kubenet v Azure najdete v tématu Použití sítí kubenet s vlastními rozsahy IP adres ve službě Azure Kubernetes Service (AKS).
- Diskuzi o síťovém modulu plug-in Azure CNI v Azure najdete v tématu Konfigurace sítí Azure CNI ve službě Azure Kubernetes Service (AKS).
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.
Otevřete uživatelský portál služby Azure Stack Hub v instanci služby Azure Stack Hub.
Vyberte Všechny prostředky.
Do vyhledávacího pole zadejte název vaší virtuální sítě.
Vyberte Podsítě+ Podsítě> a přidejte podsíť.
Přidejte název a rozsah adres pomocí zápisu CIDR. Vyberte OK.
V okně Virtuální sítě vyberte Vlastnosti. Zkopírujte ID prostředku a pak přidejte
/subnets/<nameofyoursubnect>
. Tuto hodnotu použijete jako hodnotuvnetSubnetId
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
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).
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/8
sadě ,172.16/12
a192.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.
Otevřete uživatelský portál služby Azure Stack Hub v instanci služby Azure Stack Hub.
Vyberte Všechny prostředky.
Do vyhledávacího pole zadejte název vaší virtuální sítě.
Vyberte Podsítě a pak vyberte název podsítě, která obsahuje váš cluster.
Vyberte Směrovací tabulku a pak vyberte směrovací tabulku pro váš cluster.
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
- Přečtěte si o modulu AKS ve službě Azure Stack Hub
- Přehled služby Azure Monitor pro kontejnery