Sieć między klastrami dla usługi Azure Kubernetes Fleet Manager (wersja zapoznawcza)

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/global o wartości true.
  • Usługa ma adnotację service.cilium.io/global z 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.

Następne kroki