Přehled sítí Azure CNI ve službě Azure Kubernetes Service (AKS)

Clustery AKS ve výchozím nastavení používají kubenet a vytvářejí virtuální síť a podsíť. V případě kubenetu z podsítě virtuální sítě získají uzly IP adresu. Překlad síťových adres (NAT) se pak nakonfiguruje na uzlech a pody obdrží IP adresu "skrytou" za IP uzlu. Tento přístup snižuje počet IP adres, které potřebujete rezervovat v síťovém prostoru, aby se pody mohly používat.

V případě rozhraní CNI (Container Networking Interface) získá každý pod z podsítě IP adresu a bude k němu možné přistupovat přímo. Systémům ve stejné virtuální síti jako cluster AKS se jako zdrojová adresa jakéhokoli provozu z podu zobrazuje IP adresa podu. Systémy mimo virtuální síť clusteru AKS vidí IP adresu uzlu jako zdrojovou adresu pro veškerý provoz z podu. Tyto IP adresy musí být jedinečné v rámci vašeho síťového prostoru a musí být naplánovány předem. Každý uzel má parametr konfigurace pro maximální počet podů, které podporuje. Ekvivalentní počet IP adres na uzel je pak vyhrazený předem pro tento uzel. Tento přístup vyžaduje větší plánování a často vede k vyčerpání IP adres nebo nutnosti znovu sestavit clustery ve větší podsíti, jak vaše aplikace roste.

Poznámka:

Tento článek představuje pouze tradiční CNI Azure. V případě překrytí Azure CNI virtuální síť Azure CNI pro dynamické přidělování IP adres a virtuální síť Azure CNI – Přidělení statického bloku (Preview) Místo toho si projděte jejich dokumentaci.

Požadavky

  • Virtuální síť pro cluster AKS musí umožňovat odchozí připojení k internetu.

  • Clustery AKS nemůžou používat 169.254.0.0/16, 172.30.0.0/16, , 172.31.0.0/16ani 192.0.2.0/24 pro rozsah adres služby Kubernetes, rozsah adres podů nebo rozsah adres virtuální sítě clusteru.

  • Identita clusteru používaná clusterem AKS musí mít v podsíti ve vaší virtuální síti alespoň oprávnění Přispěvatel sítě. Pokud chcete místo předdefinované role Přispěvatel sítě definovat vlastní roli , musíte mít následující oprávnění:

    • Microsoft.Network/virtualNetworks/subnets/join/action

    • Microsoft.Network/virtualNetworks/subnets/read

    • Microsoft.Authorization/roleAssignments/write

  • Podsíť přiřazená k fondu uzlů AKS nemůže být delegovaná podsíť.

  • AKS u své podsítě nepoužije skupiny zabezpečení sítě (NSG) a neupravuje žádné skupiny zabezpečení sítě přidružené k této podsíti. Pokud zadáte vlastní podsíť a přidáte skupiny zabezpečení sítě přidružené k této podsíti, musíte zajistit, aby pravidla zabezpečení v NSG umožňovala provoz v rozsahu CIDR uzlu. Další informace najdete v tématu Skupiny zabezpečení sítě.

Parametry nasazení

Při vytváření clusteru AKS se pro sítě Azure CNI dají konfigurovat následující parametry:

Virtuální síť: Virtuální síť, do které chcete nasadit cluster Kubernetes. Pokud chcete vytvořit novou virtuální síť pro cluster, vyberte Vytvořit novou a postupujte podle pokynů v části Vytvořit virtuální síť . Pokud chcete vybrat existující virtuální síť, ujistěte se, že je ve stejném umístění a předplatném Azure jako cluster Kubernetes. Informace o omezeních a kvótách pro virtuální síť Azure najdete v tématu Limity, kvóty a omezení předplatného a služeb Azure.

Podsíť: Podsíť ve virtuální síti, do které chcete cluster nasadit. Pokud chcete vytvořit novou podsíť ve virtuální síti pro váš cluster, vyberte Vytvořit nový a postupujte podle kroků v části Vytvořit podsíť . V případě hybridního připojení by se rozsah adres neměl překrývat s jinými virtuálními sítěmi ve vašem prostředí.

Modul plug-in sítě Azure: Při použití síťového modulu plug-in Azure není k interní službě LoadBalancer s modulem externalTrafficPolicy=Local přístup z virtuálních počítačů s IP adresou v clusterUCIDR, která nepatří do clusteru AKS.

Rozsah adres služby Kubernetes: Tento parametr je sada virtuálních IP adres, které Kubernetes přiřazuje interním službám ve vašem clusteru. Po vytvoření clusteru nelze tento rozsah aktualizovat. Můžete použít libovolný rozsah privátních adres, který splňuje následující požadavky:

  • Nesmí být v rozsahu IP adres virtuální sítě vašeho clusteru.
  • Nesmí se překrývat s jinými virtuálními sítěmi, se kterými partnerský vztah virtuálních sítí clusteru
  • Nesmí se překrývat s místními IP adresami.
  • Nesmí být v rozsahech 169.254.0.0/16, 172.30.0.0/16, 172.31.0.0/16nebo 192.0.2.0/24

I když je technicky možné zadat rozsah adres služby ve stejné virtuální síti jako váš cluster, nedoporučuje se to. Nepředvídatelné chování může mít za následek použití překrývajících se rozsahů IP adres. Další informace najdete v části Nejčastější dotazy v tomto článku. Další informace o službách Kubernetes najdete v dokumentaci ke službám Kubernetes.

IP adresa služby DNS Kubernetes: IP adresa pro službu DNS clusteru. Tato adresa musí být v rozsahu adres služby Kubernetes. Nepoužívejte první IP adresu v rozsahu adres. První adresa v rozsahu podsítě se používá pro adresu kubernetes.default.svc.cluster.local .

Nejčastější dotazy

  • Můžu nasadit virtuální počítače v podsíti clusteru?

    Ano. U Azure CNI pro dynamické přidělování IP adres ale virtuální počítače nejde nasadit v podsíti.

  • Jaká zdrojová IP adresa externí systémy vidí provoz, který pochází z podu s podporou Azure CNI?

    Systémům ve stejné virtuální síti jako cluster AKS se jako zdrojová adresa jakéhokoli provozu z podu zobrazuje IP adresa podu. Systémy mimo virtuální síť clusteru AKS vidí IP adresu uzlu jako zdrojovou adresu pro veškerý provoz z podu.

    V případě Azure CNI pro dynamické přidělování IP adres se ale připojení nachází ve stejné virtuální síti nebo napříč virtuálními sítěmi, IP adresa podu je vždy zdrojovou adresou pro veškerý provoz z podu. Důvodem je to, že Azure CNI pro dynamické přidělování IP adres implementuje infrastrukturu sítí kontejnerů Microsoft Azure, která poskytuje kompletní prostředí. Proto eliminuje použití ip-masq-agent, která je stále používána tradiční Azure CNI.

  • Můžu nakonfigurovat zásady sítě pro jednotlivé pody?

    Ano, zásady sítě Kubernetes jsou k dispozici v AKS. Pokud chcete začít, přečtěte si téma Zabezpečení provozu mezi pody pomocí zásad sítě v AKS.

  • Je možné maximální počet podů nasadit do uzlu, který je možné konfigurovat?

    Ano, když nasadíte cluster pomocí Azure CLI nebo šablony Resource Manageru. Viz Maximální počet podů na uzel.

    V existujícím clusteru nemůžete změnit maximální počet podů na uzel.

  • Návody nakonfigurovat další vlastnosti podsítě, kterou jsem vytvořil(a) během vytváření clusteru AKS? Například koncové body služby.

    Úplný seznam vlastností virtuální sítě a podsítí, které vytvoříte během vytváření clusteru AKS, je možné nakonfigurovat na stránce konfigurace standardní virtuální sítě na webu Azure Portal.

  • Můžu pro rozsah adres služby Kubernetes použít jinou podsíť ve virtuální síti clusteru?

    Nedoporučuje se, ale tato konfigurace je možná. Rozsah adres služby je sada virtuálních IP adres (VIPs), které Kubernetes přiřazuje interním službám ve vašem clusteru. Sítě Azure nemají přehled o rozsahu IP adres služby clusteru Kubernetes. Nedostatek přehledu o rozsahu adres služby clusteru může vést k problémům. Později můžete ve virtuální síti clusteru vytvořit novou podsíť, která se překrývají s rozsahem adres služby. Pokud dojde k takovému překrývání, může Kubernetes přiřadit službě IP adresu, kterou už používá jiný prostředek v podsíti, což způsobí nepředvídatelné chování nebo selhání. Tím, že zajistíte, že použijete rozsah adres mimo virtuální síť clusteru, můžete se těmto rizikům vyhnout.

Další krok

Další informace o sítích v AKS najdete v následujících článcích: