Notatka
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.
Dotyczy: ✔️ Fleet Manager ✔️ Fleet Manager z klastrem koncentratora
Azure Kubernetes Fleet Manager udostępnia dedykowane rozwiązanie sieci międzyklastrowych, które rozszerza datapath Kubernetes w wielu klastrach. Użycie sieci między klastrami umożliwia dowolnemu połączonemu klastrowi bezpośrednie komunikowanie się z punktami końcowymi w dowolnym innym połączonym klastrze z pełnym wymuszaniem zasad sieciowych. Korzystanie z sieciowania między klastrami, dzięki czemu klastry mogą publikować usługi, a każdy połączony klaster może je wywoływać, jakby były lokalne.
W usłudze Fleet Manager można utworzyć wiele profilów sieci między klastrami, a jedynym ograniczeniem jest to, że klastry członkowskie mogą uczestniczyć tylko w jednej sieci między klastrami.
W tym artykule przedstawiono kluczowe pojęcia dotyczące sieci między klastrami dla usługi Azure Kubernetes Fleet Manager.
Ważna
Azure funkcje rozwiązania Kubernetes Fleet Manager w wersji zapoznawczej są dostępne na zasadzie samoobsługowej, z opcją opt-in. Wersje zapoznawcze są udostępniane w wersji "as is" i "jako dostępne" i są wykluczone z umów dotyczących poziomu usług i ograniczonej gwarancji. Azure Kubernetes Fleet Manager wersje zapoznawcze są częściowo objęte wsparciem technicznym w miarę możliwości. W związku z tym te funkcje nie są przeznaczone do użytku produkcyjnego.
Wymagania wstępne i ograniczenia
- Sieć między klastrami może mieć maksymalnie 255 klastrów członkowskich.
- Klastry członkowskie usługi Fleet Manager mogą uczestniczyć tylko w jednej sieci między klastrami w dowolnym momencie.
- Klastry muszą uruchamiać platformę Kubernetes w wersji 1.32 lub nowszej i mieć włączoną usługę Advanced Container Networking Services (ACNS) z włączoną funkcją Cilium.
- Klastry muszą być połączone z jedną siecią płaską (siecią wirtualną lub wieloma sieciami równorzędnymi).
- Sieć z nakładką opartą na tunelach nie jest obsługiwana.
- Nie można jednocześnie wdrożyć samodzielnie zarządzanego wieloklastrze Cilium.
- Usługa ACNS ustawia wersję Cilium oraz włącza odpowiednie funkcje. Obecnie nie można ich bezpośrednio modyfikować.
Podstawowe pojęcia
Usługa sieci między klastrami dla Azure Kubernetes Fleet Manager oferuje wdrożenie Cilium multi-cluster zarządzane przez flotę, które eliminuje obciążenie związane z konfiguracją i zarządzaniem składnikami płaszczyzny danych Cilium multi-cluster w każdym klastrze członkowskim.
Gdy klaster dołącza do sieci między-klastrowej, agent Cilium (cilium-agent) i clustermesh-apiserver są wdrażane na płaszczyźnie sterowania klastra przez Fleet Manager. Istniejące klastry w tej samej sieci międzyklastrowej są aktualizowane przy użyciu szczegółów nowo dodanego klastra, a agent Cilium konfiguruje routing oparty na eBPF, aby umożliwić podom w każdym klastrze bezpośrednią komunikację bez użycia proxy serwerów ani bram.
Każdy klaster zachowuje konfigurację lokalnego adresowania IP CIDR dla zasobników i usług. Lokalne składniki Cilium są odpowiedzialne za routing, który pozwala na dostęp dostawcom w jednym klastrze do usług w klastrach zdalnych tak, jakby były lokalne.
W przypadku sterowania przepływem ruchu zasady sieci cilium (CiliumNetworkPolicy) mogą służyć do kontrolowania przepływu danych między klastrami, co umożliwia administratorom wymuszanie granic w sieci między klastrami.
Definiowanie usług globalnych
Usługi Kubernetes Services w dowolnym elemencie sieciowym między klastrami można udostępnić globalnie w sieci między klastrami, gdy zostaną spełnione oba następujące warunki:
- Przestrzeń nazw zawierająca usługę ma adnotację
clustermesh.cilium.io/globalo wartościtrue. - Usługa ma adnotację
service.cilium.io/globalz wartościątrue.
Wdrożenie usługi z tymi adnotacjami w wielu klastrach członkowskich sieci międzyklastrowej automatycznie równoważy ruch żądań między tymi klastrami.
Note
Zarządzana przez Fleet Manager instalacja Cilium w konfiguracji wieloklastrowej ustawia clustermesh-default-global-namespace: false, co różni się od domyślnego ustawienia Cilium. To ustawienie zwiększa skalowalność, ograniczając ilość danych o stanie (CiliumEndpoints, CiliumIdentities i Services) synchronizowanych między klastrami wyłącznie do zasobów w przestrzeniach nazw z adnotacją clustermesh.cilium.io/global ustawioną na wartość true. W związku z tym jawne wyrażenie zgody jest wymagane dla przestrzeni nazw przez ustawienie tej adnotacji.
Możesz tymczasowo usunąć usługę z usługi globalnej o zrównoważonym obciążeniu, usuwając service.cilium.io/global adnotację (lub ustawienie jej na false) w tej usłudze. Aby zatrzymać udostępnianie każdej usługi w przestrzeni nazw z danego klastra, usuń adnotację clustermesh.cilium.io/global w przestrzeni nazw (lub ustaw ją na false) w tym klastrze.
Debugowanie i rozwiązywanie problemów
Standardowe narzędzia interfejsu wiersza polecenia Cilium współpracują z siecią międzyklastrową dla Fleet Managera. Niektóre polecenia, takie jak upgrade i clustermesh connect, nie działają, ponieważ za wykonywanie tych akcji teraz odpowiedzialny jest Fleet Manager.
Poniżej przedstawiono ogólne kroki umożliwiające rozpoczęcie debugowania i rozwiązywania problemów:
- Zainstaluj najbardziej aktualną stabilną wersję Cilium CLI dla swojego systemu operacyjnego z oficjalnego repozytorium Cilium CLI na GitHubie.
- Wybierz klaster członkowski sieci międzyklastrowej i pobierz jego plik kubeconfig, używając polecenia
az aks get-credentials. - Użyj interfejsu wiersza polecenia Cilium, przekazując kontekst klastra przy użyciu parametru
--context.
Cilium CLI może zarządzać wieloma wersjami Cilium.
Aktualizowanie sieci między klastrami
Jednym z powodów, dla których warto wdrożyć sieć między klastrami zamiast samodzielnie instalować i uruchamiać wieloklasowy klaster Cilium, jest to, że Fleet Manager na bieżąco aktualizuje składniki Cilium.
Aktualizacje komponentu Cilium w zakresie sieci międzyklastrowej są dołączane jako część wydań Kubernetes w AKS. Uaktualnienia są uproszczone dzięki wstępnej weryfikacji, że składniki Cilium współpracują z wersją klastra Kubernetes uruchomioną przez klaster, zapewniając stabilność sieci między klastrami.
Takie podejście oznacza, że można użyć przebiegów aktualizacji i strategii programu Fleet Manager, aby uaktualnić płaszczyznę sterowania klastrów, definiując kolejność aktualizowania klastrów.