Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wadą tradycyjnego interfejsu sieciowego CNI jest wyczerpanie adresów IP zasobników w miarę wzrostu klastra AKS, co skutkuje koniecznością przebudowy całego klastra w większej podsieci. Nowa funkcja dynamicznej alokacji adresów IP w usłudze Azure CNI rozwiązuje ten problem, przydzielając adresy IP zasobników z podsieci oddzielonej od tej, która obsługuje klaster AKS.
Oferuje następujące korzyści:
- Lepsze wykorzystanie adresów IP: adresy IP są dynamicznie przydzielane do zasobników klastra z podsieci zasobnika. Prowadzi to do lepszego wykorzystania adresów IP w klastrze w porównaniu z tradycyjnym rozwiązaniem CNI, które wykonuje statyczną alokację adresów IP dla każdego węzła.
- Skalowalne i elastyczne: Podsieci węzłów i zasobników można skalować niezależnie. Pojedyncza podsieć dla podów może być współużytkowana w różnych pulach węzłów w ramach klastra lub w różnych klastrach AKS wdrożonych w tej samej sieci wirtualnej. Można również skonfigurować oddzielną podsieć podów dla puli węzłów.
- Wysoka wydajność: Ponieważ zasobniki mają przypisane adresy IP sieci wirtualnej, mają bezpośrednią łączność z innymi zasobnikami w klastrze i zasobami w sieci wirtualnej. Rozwiązanie obsługuje bardzo duże klastry bez spadku wydajności.
- Oddzielne zasady sieci wirtualnej dla zasobników: ponieważ zasobniki mają oddzielną podsieć, można skonfigurować oddzielne zasady sieci wirtualnej dla nich, które różnią się od zasad węzłów. Umożliwia to wiele przydatnych scenariuszy, takich jak zezwolenie na łączność z Internetem tylko dla zasobników, a nie dla węzłów, ustalanie źródłowego adresu IP zasobnika w puli węzłów przy użyciu bramy NAT Azure oraz filtrowanie ruchu między pulami węzłów za pomocą grup zabezpieczeń sieciowych (NSG).
- Zasady sieciowe platformy Kubernetes: zarówno zasady sieci platformy Azure, jak i Calico współpracują z tym nowym rozwiązaniem.
W tym artykule pokazano, jak używać sieci azure CNI do dynamicznej alokacji adresów IP i rozszerzonej obsługi podsieci w usłudze AKS.
Wymagania wstępne
Zapoznaj się z wymaganiami wstępnymi dotyczącymi konfigurowania podstawowej sieci usługi Azure CNI w usłudze AKS, ponieważ te same wymagania wstępne dotyczą tego artykułu.
Zapoznaj się z parametrami wdrażania do konfigurowania podstawowej sieci Azure CNI w usłudze AKS, ponieważ stosuje się te same parametry.
Klastry AKS Engine i DIY nie są obsługiwane.
Azure CLI w wersji
2.37.0
lub nowszej.Jeśli masz istniejący klaster, musisz włączyć usługę Container Insights na potrzeby monitorowania użycia podsieci IP. Usługę
az aks enable-addons
Container Insights można włączyć przy użyciu polecenia , jak pokazano w poniższym przykładzie:az aks enable-addons --addons monitoring --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME
planowanie adresowania IP
Planowanie adresowania IP jest znacznie prostsze dzięki tej funkcji. Ponieważ węzły i pod-y są rozszerzane niezależnie, ich przestrzenie adresowe mogą być również planowane oddzielnie. Ponieważ podsieci zasobników można skonfigurować na poziomie puli węzłów, zawsze można dodać nową podsieć, kiedy dodajesz pulę węzłów. Zasobniki systemowe w puli węzłów/klastrów również otrzymują adresy IP z podsieci zasobników, więc to zachowanie powinno być uwzględnione.
Adresy IP są przydzielane do węzłów w partiach po 16. Alokacja adresów IP podsieci powinna być planowana z co najmniej 16 adresami IP na węzeł w klastrze; węzły będą żądać 16 adresów IP podczas uruchamiania i zażąda innej partii 16 za każdym razem, gdy w ich przydziałie nie ma <8 adresów IP.
Planowanie adresów IP dla usług Kubernetes i mostka platformy Docker pozostaje niezmienione.
Aby wyświetlić i zweryfikować zasoby NodeNetworkConfiguration (NNC) odpowiedzialne za te alokacje adresów IP, możesz uruchomić następujące polecenie:
kubectl get nodenetworkconfigs -n kube-system -o wide
Maksymalna liczba zasobników na węzeł w klastrze z dynamiczną alokacją adresów IP i rozszerzoną obsługą podsieci
Liczba podów na węzeł w przypadku korzystania z wtyczki Azure CNI z dynamiczną alokacją adresów IP różni się nieco od tradycyjnego zachowania CNI.
CNI | Wartość domyślna | Możliwość konfigurowania podczas wdrażania |
---|---|---|
Tradycyjny interfejs CNI platformy Azure | 30 | Tak (do 250) |
Azure CNI z dynamiczną alokacją adresów IP | 250 | Tak (do 250) |
Wszystkie inne wskazówki dotyczące konfigurowania maksymalnej liczby podów na węzeł pozostają bez zmian.
Parametry wdrożenia
Parametry wdrażania do konfiguracji podstawowej sieci Azure CNI w AKS są prawidłowe, z dwoma wyjątkami:
- Parametr podsieci odwołuje się teraz do podsieci powiązanej z węzłami klastra.
- Dodatkowy parametr podsieci zasobnika służy do określania podsieci, której adresy IP będą dynamicznie przydzielane do zasobników.
Konfigurowanie sieci przy użyciu dynamicznej alokacji adresów IP i rozszerzonej obsługi podsieci — interfejs wiersza polecenia platformy Azure
Użycie dynamicznej alokacji adresów IP i rozszerzonej obsługi podsieci w klastrze jest podobne do domyślnej metody konfigurowania klastra azure CNI. W poniższym przykładzie przedstawiono tworzenie nowej sieci wirtualnej z podsiecią dla węzłów i podsieci dla zasobników oraz tworzenie klastra korzystającego z sieci CNI platformy Azure z dynamiczną alokacją adresów IP i rozszerzoną obsługą podsieci. Pamiętaj, aby zastąpić zmienne, takie jak $subscription
własnymi wartościami.
Utwórz sieć wirtualną z dwiema podsieciami.
RESOURCE_GROUP_NAME="myResourceGroup"
VNET_NAME="myVirtualNetwork"
LOCATION="westcentralus"
SUBNET_NAME_1="nodesubnet"
SUBNET_NAME_2="podsubnet"
# Create the resource group
az group create --name $RESOURCE_GROUP_NAME --location $LOCATION
# Create our two subnet network
az network vnet create --resource-group $RESOURCE_GROUP_NAME --location $LOCATION --name $VNET_NAME --address-prefixes 10.0.0.0/8 -o none
az network vnet subnet create --resource-group $RESOURCE_GROUP_NAME --vnet-name $VNET_NAME --name $SUBNET_NAME_1 --address-prefixes 10.240.0.0/16 -o none
az network vnet subnet create --resource-group $RESOURCE_GROUP_NAME --vnet-name $VNET_NAME --name $SUBNET_NAME_2 --address-prefixes 10.241.0.0/16 -o none
Utwórz klaster, odwołując się do podsieci węzła przy użyciu --vnet-subnet-id
i podsieci zasobnika przy użyciu --pod-subnet-id
, włączając dodatek do monitorowania.
CLUSTER_NAME="myAKSCluster"
SUBSCRIPTION="aaaaaaa-aaaaa-aaaaaa-aaaa"
az aks create \
--name $CLUSTER_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--location $LOCATION \
--max-pods 250 \
--node-count 2 \
--network-plugin azure \
--vnet-subnet-id /subscriptions/$SUBSCRIPTION/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$SUBNET_NAME_1 \
--pod-subnet-id /subscriptions/$SUBSCRIPTION/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$SUBNET_NAME_2 \
--enable-addons monitoring \
--generate-ssh-keys
Dodawanie puli węzłów
Podczas dodawania puli węzłów należy odwołać się do podsieci węzłów przy użyciu --vnet-subnet-id
i do podsieci zasobnika przy użyciu --pod-subnet-id
. Poniższy przykład tworzy dwie nowe podsieci, które są następnie używane do utworzenia nowej puli węzłów.
SUBNET_NAME_3="node2subnet"
SUBNET_NAME_4="pod2subnet"
NODE_POOL_NAME="mynodepool"
az network vnet subnet create --resource-group $RESOURCE_GROUP_NAME --vnet-name $VNET_NAME --name $SUBNET_NAME_3 --address-prefixes 10.242.0.0/16 -o none
az network vnet subnet create --resource-group $RESOURCE_GROUP_NAME --vnet-name $VNET_NAME --name $SUBNET_NAME_4 --address-prefixes 10.243.0.0/16 -o none
az aks nodepool add --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME --name $NODE_POOL_NAME \
--max-pods 250 \
--node-count 2 \
--vnet-subnet-id /subscriptions/$SUBSCRIPTION/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$SUBNET_NAME_3 \
--pod-subnet-id /subscriptions/$SUBSCRIPTION/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$SUBNET_NAME_4 \
--no-wait
Monitorowanie użycia podsieci IP
Usługa Azure CNI umożliwia monitorowanie użycia podsieci IP. Aby włączyć monitorowanie użycia podsieci IP, wykonaj poniższe kroki:
Pobieranie pliku YAML
Pobierz lub grep plik o nazwie container-azm-ms-agentconfig.yaml z usługi GitHub.
Znajdź
azure_subnet_ip_usage
w integracjach. Ustaw wartość opcjienabled
natrue
.Zapisz plik.
Pobierz poświadczenia AKS
Ustaw zmienne dla subskrypcji, grupy zasobów i klastra. Rozważ następujące przykłady:
az account set --subscription $SUBSCRIPTION
az aks get-credentials --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME
Stosowanie konfiguracji
- Otwórz terminal w folderze, w którym jest zapisywany pobrany plik container-azm-ms-agentconfig.yaml .
- Zastosuj konfigurację przy użyciu
kubectl apply -f container-azm-ms-agentconfig.yaml
polecenia . Spowoduje to ponowne uruchomienie poda, a metryki będą widoczne po upływie 5–10 minut. - Wyświetl metryki w klastrze, przechodząc do obszaru Skoroszyty na stronie klastra w witrynie Azure Portal i znajdź skoroszyt o nazwie Użycie adresu IP podsieci.
Dynamiczna alokacja adresów IP i rozszerzona obsługa podsieci — często zadawane pytania
Czy mogę przypisać wiele podsieci do puli klastrów/węzłów?
Do klastra lub puli węzłów można przypisać tylko jedną podsieć. Jednak wiele klastrów lub pul węzłów może współużytkować jedną podsieć.
Czy można całkowicie przypisać podsieci Pod z zupełnie innej sieci wirtualnej (VNet)?
Nie, podsieć zasobnika powinna pochodzić z tej samej sieci wirtualnej co klaster.
Czy niektóre pule węzłów w klastrze mogą używać tradycyjnego CNI, podczas gdy inne używają nowego CNI?
Cały klaster powinien używać tylko jednego typu CNI.
Następne kroki
Dowiedz się więcej o sieciowaniu w AKS w następujących artykułach:
Azure Kubernetes Service