Omówienie sieci usługi Azure CNI w usłudze Azure Kubernetes Service (AKS)
Domyślnie klastry usługi AKS używają rozwiązania kubenet i tworzą sieć wirtualną i podsieć. Dzięki rozwiązaniu kubenet węzły uzyskują adres IP z podsieci sieci wirtualnej. Translacja adresów sieciowych (NAT) jest następnie konfigurowana w węzłach, a zasobniki otrzymują adres IP "ukryty" za adresem IP węzła. Takie podejście zmniejsza liczbę adresów IP, które należy zarezerwować w przestrzeni sieciowej, aby zasobniki były używane.
Za pomocą interfejsu sieci kontenera platformy Azure (CNI) każdy zasobnik pobiera adres IP z podsieci i może być dostępny bezpośrednio. Systemy znajdujące się w tej samej sieci wirtualnej co klaster usługi AKS widzą adres IP zasobnika jako adres źródłowy dla każdego ruchu z zasobnika. Systemy spoza sieci wirtualnej klastra usługi AKS widzą adres IP węzła jako adres źródłowy dla dowolnego ruchu z zasobnika. Te adresy IP muszą być unikatowe w przestrzeni sieciowej i muszą być planowane z wyprzedzeniem. Każdy węzeł ma parametr konfiguracji dla maksymalnej liczby zasobników, które obsługuje. Równoważna liczba adresów IP na węzeł jest następnie zarezerwowana z góry dla tego węzła. Takie podejście wymaga większego planowania i często prowadzi do wyczerpania adresów IP lub konieczności ponownego kompilowania klastrów w większej podsieci w miarę wzrostu zapotrzebowania aplikacji.
Uwaga
W tym artykule wprowadzono tylko tradycyjne interfejsy CNI platformy Azure. W przypadku nakładki usługi Azure CNI sieć wirtualna azure CNI na potrzeby dynamicznej alokacji adresów IP i sieci wirtualnej usługi Azure CNI — statyczna alokacja bloków (wersja zapoznawcza). Zamiast tego zapoznaj się z dokumentacją.
Wymagania wstępne
Sieć wirtualna klastra usługi AKS musi zezwalać na wychodzącą łączność z Internetem.
Klastry usługi AKS nie mogą używać
169.254.0.0/16
zakresu172.31.0.0/16
172.30.0.0/16
192.0.2.0/24
adresów usługi Kubernetes, zakresu adresów zasobnika ani zakresu adresów sieci wirtualnej klastra.Tożsamość klastra używana przez klaster usługi AKS musi mieć co najmniej uprawnienia Współautor sieci w podsieci w sieci wirtualnej. Jeśli chcesz zdefiniować rolę niestandardową zamiast korzystać z wbudowanej roli Współautor sieci, wymagane są następujące uprawnienia:
Microsoft.Network/virtualNetworks/subnets/join/action
Microsoft.Network/virtualNetworks/subnets/read
Microsoft.Authorization/roleAssignments/write
Podsieć przypisana do puli węzłów usługi AKS nie może być podsiecią delegowana.
Usługa AKS nie stosuje sieciowych grup zabezpieczeń do podsieci i nie modyfikuje żadnej sieciowej grupy zabezpieczeń skojarzonej z tą podsiecią. Jeśli podasz własną podsieć i dodasz sieciowe grupy zabezpieczeń skojarzone z tą podsiecią, musisz upewnić się, że reguły zabezpieczeń w sieciowych grupach zabezpieczeń zezwalają na ruch w zakresie CIDR węzła. Aby uzyskać więcej informacji, zobacz Sieciowe grupy zabezpieczeń.
Parametry wdrożenia
Podczas tworzenia klastra usługi AKS można skonfigurować następujące parametry dla sieci usługi Azure CNI:
Sieć wirtualna: sieć wirtualna, w której chcesz wdrożyć klaster Kubernetes. Jeśli chcesz utworzyć nową sieć wirtualną dla klastra, wybierz pozycję Utwórz nową i wykonaj kroki opisane w sekcji Tworzenie sieci wirtualnej. Jeśli chcesz wybrać istniejącą sieć wirtualną, upewnij się, że znajduje się ona w tej samej lokalizacji i subskrypcji platformy Azure co klaster Kubernetes. Aby uzyskać informacje o limitach i limitach przydziałów dla sieci wirtualnej platformy Azure, zobacz Limity subskrypcji i usług platformy Azure, limity przydziału i ograniczenia.
Podsieć: podsieć w sieci wirtualnej, w której chcesz wdrożyć klaster. Jeśli chcesz utworzyć nową podsieć w sieci wirtualnej dla klastra, wybierz pozycję Utwórz nową i wykonaj kroki opisane w sekcji Tworzenie podsieci . W przypadku łączności hybrydowej zakres adresów nie powinien pokrywać się z innymi sieciami wirtualnymi w danym środowisku.
Wtyczka sieci platformy Azure: jeśli jest używana wtyczka sieci platformy Azure, wewnętrzna usługa LoadBalancer z parametrem "externalTrafficPolicy=Local" nie może być dostępna z maszyn wirtualnych z adresem IP w klastrze CLUSTERCIDR, który nie należy do klastra usługi AKS.
Zakres adresów usługi Kubernetes: ten parametr jest zestawem wirtualnych adresów IP przypisywanych przez platformę Kubernetes do usług wewnętrznych w klastrze. Nie można zaktualizować tego zakresu po utworzeniu klastra. Możesz użyć dowolnego zakresu prywatnych adresów, który spełnia następujące wymagania:
- Nie może należeć do zakresu adresów IP sieci wirtualnej klastra
- Nie może nakładać się na inne sieci wirtualne, z którymi klastra wirtualne sieci równorzędne
- Nie może nakładać się na żadne lokalne adresy IP
- Nie może należeć do zakresów
169.254.0.0/16
,172.30.0.0/16
,172.31.0.0/16
lub192.0.2.0/24
Chociaż technicznie można określić zakres adresów usługi w tej samej sieci wirtualnej co klaster, nie jest to zalecane. Nieprzewidywalne zachowanie może spowodować zastosowanie nakładających się zakresów adresów IP. Aby uzyskać więcej informacji, zobacz sekcję często zadawanych pytań w tym artykule. Aby uzyskać więcej informacji na temat usług Kubernetes, zobacz Usługi w dokumentacji platformy Kubernetes.
Adres IP usługi DNS kubernetes: adres IP usługi DNS klastra. Ten adres musi znajdować się w zakresie adresów usługi Kubernetes. Nie używaj pierwszego adresu IP w zakresie adresów. Pierwszy adres w zakresie podsieci jest używany dla adresu kubernetes.default.svc.cluster.local .
Często zadawane pytania
Czy mogę wdrożyć maszyny wirtualne w podsieci klastra?
Tak. Jednak w przypadku sieci CNI platformy Azure na potrzeby dynamicznej alokacji adresów IP nie można wdrożyć maszyn wirtualnych w podsieci zasobnika.
Jaki źródłowy adres IP widzi systemy zewnętrzne dla ruchu pochodzącego z zasobnika z obsługą sieci CNI platformy Azure?
Systemy znajdujące się w tej samej sieci wirtualnej co klaster usługi AKS widzą adres IP zasobnika jako adres źródłowy dla każdego ruchu z zasobnika. Systemy spoza sieci wirtualnej klastra usługi AKS widzą adres IP węzła jako adres źródłowy dla dowolnego ruchu z zasobnika.
Jednak w przypadku dynamicznej alokacji adresów IP w usłudze Azure CNI, niezależnie od tego, czy połączenie znajduje się w tej samej sieci wirtualnej, czy między sieciami wirtualnymi, adres IP zasobnika jest zawsze adresem źródłowym dla dowolnego ruchu z zasobnika. Dzieje się tak, ponieważ sieć CNI platformy Azure na potrzeby dynamicznej alokacji adresów IP implementuje infrastrukturę sieci kontenerów platformy Microsoft Azure, która zapewnia kompleksowe środowisko pracy. W związku z tym eliminuje użycie usługi
ip-masq-agent
, która jest nadal używana przez tradycyjną usługę Azure CNI.Czy mogę skonfigurować zasady sieci dla zasobnika?
Tak, zasady sieciowe platformy Kubernetes są dostępne w usłudze AKS. Aby rozpocząć, zobacz Zabezpieczanie ruchu między zasobnikami przy użyciu zasad sieciowych w usłudze AKS.
Czy maksymalna liczba zasobników można wdrożyć w węźle konfigurowalnym?
Tak, podczas wdrażania klastra przy użyciu interfejsu wiersza polecenia platformy Azure lub szablonu usługi Resource Manager. Zobacz Maksymalna liczba zasobników na węzeł.
Nie można zmienić maksymalnej liczby zasobników na węzeł w istniejącym klastrze.
Jak mogę skonfigurować dodatkowe właściwości podsieci utworzonej podczas tworzenia klastra usługi AKS? Na przykład punkty końcowe usługi.
Pełną listę właściwości sieci wirtualnej i podsieci tworzonych podczas tworzenia klastra usługi AKS można skonfigurować na stronie standardowej konfiguracji sieci wirtualnej w witrynie Azure Portal.
Czy mogę użyć innej podsieci w sieci wirtualnej klastra dla zakresu adresów usługi Kubernetes?
Nie jest to zalecane, ale ta konfiguracja jest możliwa. Zakres adresów usługi to zestaw wirtualnych adresów IP (VIP), który platforma Kubernetes przypisuje do usług wewnętrznych w klastrze. Usługa Azure Networking nie ma wglądu w zakres adresów IP usługi klastra Kubernetes. Brak wglądu w zakres adresów usługi klastra może prowadzić do problemów. Później można utworzyć nową podsieć w sieci wirtualnej klastra, która nakłada się na zakres adresów usługi. Jeśli wystąpi takie nakładanie, platforma Kubernetes może przypisać usłudze adres IP, który jest już używany przez inny zasób w podsieci, powodując nieprzewidywalne zachowanie lub błędy. Zapewniając użycie zakresu adresów poza siecią wirtualną klastra, można uniknąć tego ryzyka nakładania się.
Następny krok
Dowiedz się więcej o sieci w usłudze AKS w następujących artykułach:
Azure Kubernetes Service