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.
W tym przewodniku wdrożysz kontroler GitHub Actions o wysokiej dostępności i własnych agentów uruchomionych w usłudze Azure Kubernetes Service (AKS). Samodzielnie hostowane moduły używają udziałów plików platformy Azure SMB do przechowywania danych trwałych.
Ważne
Oprogramowanie typu open source jest wymienione w dokumentacji i przykładach usługi AKS. Oprogramowanie, które wdrażasz, jest wykluczone z umów dotyczących poziomu usług AKS, ograniczonej gwarancji i wsparcia technicznego platformy Azure. W miarę korzystania z technologii open source wraz z usługą AKS zapoznaj się z opcjami pomocy technicznej dostępnymi w odpowiednich społecznościach i opiekunami projektów, aby opracować plan.
Firma Microsoft ponosi odpowiedzialność za tworzenie pakietów typu open source wdrażanych w usłudze AKS. Ta odpowiedzialność obejmuje posiadanie pełnej kontroli nad procesem kompilacji, skanowania, podpisywania, weryfikacji i szybkich poprawek, a także nad plikami binarnymi w obrazach kontenerów. Aby uzyskać więcej informacji, zobacz zarządzanie podatnościami dla AKS i zakres wsparcia dla AKS.
Co to jest Actions Runner Controller (ARC)?
Kontroler modułu uruchamiającego akcje (ARC) to operator kubernetes, który organizuje i skaluje własne moduły uruchamiające dla funkcji GitHub Actions. Usługa ARC korzysta z woluminów trwałych (PV) w celu udostępniania informacji o zadaniu między zasobnikiem modułu uruchamiającego i zasobnikiem zadań kontenera. Aby uzyskać więcej informacji, zobacz About Actions Runner Controller (Informacje o kontrolerach modułu uruchamiającego akcje).
Dlaczego warto używać własnych funkcji GitHub Actions w usłudze AKS?
Samodzielne hostowanie runnerów GitHub Actions na AKS zapewnia organizacjom większą kontrolę, skalowalność i bezpieczeństwo nad ich infrastrukturą CI/CD. Zamiast polegać na agentach hostowanych w GitHubie, które są współdzielone i tymczasowe, własne agenty oferują:
- Środowiska niestandardowe: dostosuj moduły uruchamiacze w celu dopasowania określonych wymagań dotyczących kompilacji, testowania lub wdrażania.
- Wzrost wydajności: wykorzystaj trwały magazyn i buforowanie, aby skrócić czas kompilacji i zwiększyć niezawodność.
- Wydajność kosztów na dużą skalę: moduły uruchamiające skalę dynamicznie w ramach własnej infrastruktury, optymalizując częste lub długotrwałe przepływy pracy.
- Zwiększone zabezpieczenia i izolacja: zachowaj pełną kontrolę nad infrastrukturą i danymi, która jest idealna dla branż regulowanych lub wrażliwych obciążeń.
Typowe przypadki użycia
- Enterprise CI/CD pipelines: Dla zespołów potrzebujących spójnych, bezpiecznych i skalowalnych środowisk budowania.
- Duże monoreposy lub potoki uczenia maszynowego: buforowanie lub utrzymywanie artefaktów ma kluczowe znaczenie.
- Optymalizacja wydajności: używanie udziałów SMB usługi Azure Files w warstwie Premium w celu zmniejszenia opóźnienia metadanych i zwiększenia liczby operacji we/wy na sekundę.
Wymagania wstępne
- W tym przewodniku założono podstawową wiedzę na temat podstawowych pojęć związanych z platformą Kubernetes.
- Potrzebujesz ról wbudowanych platformy Azure: właściciela lub Administratora dostępu użytkownika oraz współautora, na subskrypcji w swoim koncie platformy Azure.
Użyj środowiska Bash w Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Get started with Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj Azure CLI. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie Azure CLI w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić Azure CLI w kontenerze Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do Azure CLI za pomocą polecenia az login. Aby zakończyć proces uwierzytelniania, wykonaj kroki wyświetlane na Twoim terminalu. Aby uzyskać inne opcje logowania, zobacz Uwierzytelnianie na platformie Azure przy użyciu interfejsu wiersza polecenia platformy Azure.
Gdy zostaniesz o to poproszony/a, zainstaluj rozszerzenie Azure CLI przy pierwszym użyciu. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Używanie rozszerzeń i zarządzanie nimi za pomocą interfejsu wiersza polecenia platformy Azure.
Uruchom az version, aby sprawdzić zainstalowaną wersję i biblioteki zależne. Aby zaktualizować do najnowszej wersji, uruchom az upgrade.
- Potrzebujesz aktywnego konta usługi GitHub. Zapoznaj się z informacjami o cenach na podstawie kontrolki repozytorium.
- Aby zainstalować, potrzebne są następujące zasoby:
- Interfejs wiersza polecenia platformy Azure w wersji 2.56 lub nowszej.
- Rozszerzenie usługi Azure Kubernetes Service (AKS) w wersji zapoznawczej.
- jq w wersji 1.5 lub nowszej.
- kubectl w wersji 1.21.0 lub nowszej.
- openssl w wersji 3.3.1 lub nowszej.
- Program Visual Studio Code lub inny wybrany edytor kodu.
Proces wdrażania
Z tego przewodnika dowiesz się, jak wykonywać następujące działania:
- Użyj interfejsu wiersza polecenia platformy Azure, aby utworzyć klaster usługi AKS z wieloma strefami.
- Wdróż udział plików platformy Azure do użycia w woluminach o stałej przepustowości usługi AKS.
- Zainstaluj Kontroler Runnera GitHub Actions (ARC) na AKS.
- Zainstaluj zestaw skalowania modułów uruchamiaczy ARC i zainstaluj udział plików w usłudze AKS.
- Uruchamianie przykładowego przepływu pracy przy użyciu funkcji GitHub Actions.
Architektura wdrażania
Ta architektura referencyjna ilustruje sposób implementowania własnego agenta GitHub Actions przy użyciu AKS i Azure File Share (SMB). Rozwiązanie umożliwia organizacjom bezpieczne wykonywanie zadań przepływu pracy usługi GitHub w ramach własnej infrastruktury platformy Azure przy zachowaniu wydajnego zarządzania magazynem i skalowalności.
Architektura składa się z trzech głównych składników:
- Warstwa integracji usługi GitHub: łączy przepływy pracy z repozytoriów GitHub z infrastrukturą platformy Azure.
- Warstwa orkiestracji usługi AKS: zarządza wystąpieniami konteneryzowanego modułu uruchamiającego i ich cyklem życia.
- Warstwa przechowywania: zapewnia funkcje pamięci trwałej i nietrwałej dla runnerów.
Warstwa integracji usługi GitHub
Warstwa integracji usługi GitHub łączy przepływy pracy z repozytoriów GitHub z infrastrukturą platformy Azure. Zadania przepływu pracy są wysyłane z GitHub za pośrednictwem api.github.com i githubusercontent.com do samodzielnie hostowanych agentów.
Warstwa orkiestracji klastra AKS
Warstwa orkiestracji klastra AKS zarządza konteneryzowanymi instancjami biegacza oraz ich życiem. Klaster jest podzielony na dwie przestrzenie nazw: arc-controller i arc-runners.
arc-controller zarządza infrastrukturą modułu uruchamiającego i odbiornikami zadań.
arc-runners obsługuje tajemnice, kontrolę dostępu i pody uruchamiające. Uruchamiacze są konteneryzowane, używają magazynu efemerycznego i łączą się z udostępnionymi i dedykowanymi woluminami.
Warstwa przechowywania
Warstwa magazynu udziałów plików platformy Azure zapewnia zarówno udział plików NuGet z dostępem do współdzielonych zależności, jak i magazyn efemeryczny dla agentów uruchomieniowych, wszystkie obsługiwane przez roszczenia o trwały wolumin.
Następny krok
Współautorzy
Firma Microsoft utrzymuje ten artykuł. Następujący autorzy pierwotnie napisali ten tekst:
- Jorge Arterio | Starszy ekspert ds. chmury
- Jeff Patterson | Główny menedżer produktu
- Rena Shah | Starszy menedżer produktu
- Shekhar Singh Sorot | Menedżer produktu 2
- Erin Schaffer | Content Developer 2