Konfiguracje usługi GitOps Flux w wersji 1 z włączoną usługą Kubernetes z obsługą usługi Azure Arc

Ważne

Dokumenty w tej sekcji dotyczą metodyki GitOps z rozwiązaniem Flux w wersji 1. Usługa GitOps z rozwiązaniem Flux v2 jest teraz dostępna dla klastrów Kubernetes i Azure Kubernetes Service (AKS) z obsługą usługi Azure Arc; dowiedz się więcej o usłudze GitOps z rozwiązaniem Flux w wersji 2. Zalecamy jak najszybsze przeprowadzenie migracji do wersji Flux v2 .

Obsługa zasobów konfiguracji klastra opartych na platformie Flux w wersji 1 utworzonych przed 1 stycznia 2024 r. zakończy się 24 maja 2025 r. Od 1 stycznia 2024 r. nie będzie można utworzyć nowych zasobów konfiguracji klastra opartego na platformie Flux w wersji 1.

W odniesieniu do platformy Kubernetes usługa GitOps to praktyka deklarowania żądanego stanu konfiguracji klastra Kubernetes (wdrożeń, przestrzeni nazw itp.) w repozytorium Git. Po tej deklaracji następuje sondowanie i wdrażanie oparte na ściąganiu tych konfiguracji klastra przy użyciu operatora. Repozytorium Git może zawierać następujące elementy:

  • Manifesty w formacie YAML opisujące wszystkie prawidłowe zasoby kubernetes, w tym przestrzenie nazw, konfigurację Mapy, wdrożenia, zestawy DaemonSet itp.
  • Wykresy helm na potrzeby wdrażania aplikacji.

Flux, popularne narzędzie open source w przestrzeni GitOps, można wdrożyć w klastrze Kubernetes, aby ułatwić przepływ konfiguracji z repozytorium Git do klastra Kubernetes. Platforma Flux obsługuje wdrażanie operatora zarówno w zakresie klastra, jak i przestrzeni nazw. Operator flux wdrożony z zakresem przestrzeni nazw może wdrażać tylko obiekty Kubernetes w tej konkretnej przestrzeni nazw. Możliwość wyboru między zakresem klastra lub przestrzeni nazw ułatwia osiągnięcie wzorców wdrażania wielu dzierżaw w tym samym klastrze Kubernetes.

Konfiguracje

Configurations architecture

Połączenie między klastrem a repozytorium Git jest tworzone jako zasób konfiguracji (Microsoft.KubernetesConfiguration/sourceControlConfigurations) w oparciu o zasób Kubernetes z włączoną usługą Azure Arc (reprezentowany przez Microsoft.Kubernetes/connectedClusters) w usłudze Azure Resource Manager.

Właściwości zasobu konfiguracji służą do wdrażania operatora Flux w klastrze z odpowiednimi parametrami, takimi jak repozytorium Git, z którego mają być ściągane manifesty i interwał sondowania, w którym można je ściągnąć. Dane zasobów konfiguracji są przechowywane w spoczynku w bazie danych usługi Azure Cosmos DB w celu zapewnienia poufności danych.

Uruchomienie config-agent w klastrze jest odpowiedzialne za:

  • Śledzenie nowych lub zaktualizowanych zasobów konfiguracji w zasobie Kubernetes z obsługą usługi Azure Arc.
  • Wdrażanie operatora Flux w celu obejrzenia repozytorium Git dla każdego zasobu konfiguracji.
  • Stosowanie wszelkich aktualizacji wprowadzonych do dowolnego zasobu konfiguracji.

Możesz utworzyć wiele zasobów konfiguracji o zakresie przestrzeni nazw w tym samym klastrze Kubernetes z obsługą usługi Azure Arc, aby osiągnąć wielodostępność.

Uwaga

  • config-agent monitoruje nowe lub zaktualizowane zasoby konfiguracji, które mają być dostępne w zasobie Kubernetes z obsługą usługi Azure Arc. W związku z tym agenci wymagają łączności, aby żądany stan był ściągany do klastra. Jeśli agenci nie mogą nawiązać połączenia z platformą Azure, istnieje opóźnienie propagacji żądanego stanu do klastra.
  • Poufne dane wejściowe klienta, takie jak klucz prywatny, znana zawartość hostów, nazwa użytkownika HTTPS i token/hasło nie są przechowywane przez więcej niż 48 godzin w usługach Kubernetes z obsługą usługi Azure Arc. Jeśli używasz poufnych danych wejściowych dla konfiguracji, przełącz klastry w tryb online tak regularnie, jak to możliwe.

Stosowanie konfiguracji na dużą skalę

Ponieważ usługa Azure Resource Manager zarządza konfiguracjami, możesz zautomatyzować tworzenie tej samej konfiguracji we wszystkich zasobach platformy Kubernetes z włączoną usługą Azure Arc przy użyciu usługi Azure Policy w zakresie subskrypcji lub grupy zasobów.

To wymuszanie na dużą skalę gwarantuje, że można zastosować wspólną konfigurację linii bazowej (zawierającą konfiguracje, takie jak ClusterRoleBindings, RoleBindings i NetworkPolicy) w całej floty lub spisie klastrów Kubernetes z obsługą usługi Azure Arc.

Następne kroki