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 popisuje, jak najít informace, které potřebujete ve virtuální síti. Tento článek obsahuje kroky pro výpočet 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í enginu AKS používá síťový plugin kubenet. Modul AKS ve službě Azure Stack Hub také podporuje 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).
Důležité informace o 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.
- Vezměte v úvahu, ž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. Zde jsou následující příklady kubenet a Azure CNI.
- Adresní prostor
169.254.0.0/16
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í webu Azure Portal.
Ve virtuální síti vytvořte novou podsíť. Musíte získat ID prostředku podsítě a rozsah IP adres, které použijete v modelu rozhraní API při nasazování 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ě+ 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 hodnotu pro klíč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
.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ů na každé síti, pokud máte v úmyslu použít přemosťování virtuálních sítí. Překrývající se adresní prostory mohou zhoršit vaši schopnost umožnit propojování sítí.
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 adresy uzlů: Blok adresy použitý k přiřazování adres uzlům clusteru. Tato hodnota může být jeden blok adres pro všechny uzly clusteru. Alternativně, mohou být použity 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. V případě Azure CNI získají uzly a kontejnery 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 adresy služeb: Blok adresy, ze kterého služby nasazené do clusteru Kubernetes získávají 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: Blok adresy, ze kterého pody získávají 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 musíte pro uzly řídicí roviny nastavit dvě další hodnoty. Potřebujete znát počet IP adres, které se mají rezervovat pro váš cluster, 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žívá jednu IP adresu pro každou řídicí rovinu až pět uzlů řídicí roviny. Modul AKS také vyžaduje další 10 IP adres za posledním uzlem řídicí roviny pro rezervaci IP adres v hlavní místnosti. Nakonec používá pro vyrovnávání zatížení další IP adresu po rezervaci uzlů řídicí roviny a prostoru, celkem 16 IP adres. 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, musíte nastavit svou 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 je vlastnost firstConsecutiveStaticIP
172.100.0.224
.
Pro větší 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 je vlastnost firstConsecutiveStaticIP
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 masterProfilenastavte 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 blok adres 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 je mapována na blok adres 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 je přiřazena k adresnímu bloku 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. Druhému uzlu není přiřazena síť POD, protože jste vyčerpali adresní prostor IP, takže nejsou připravené v prostředí 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 odpovídá bloku 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 control-plane-sn
10.100.0.0/24
podsíť a agents-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žijete Azure CNI se síťovým adresným prostorem 172.24.0.0/16
, kde je podsíť pro control-plane-sn
172.24.0.0/24
a k8s-sn
je 172.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 počítače pomocí příkazu deploy
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 vaší vlastní virtuální sítě získejte ID prostředku směrovací tabulky z panelu 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ě.
Další kroky
- Přečtěte si o modulu AKS ve službě Azure Stack Hub
- Přehled služby Azure Monitor pro kontejnery