Nasazení služby GitHub Actions s vysokou dostupností ve službě Azure Kubernetes Service (AKS) s využitím přehledu služby Azure Files

V této příručce nasadíte vysoce dostupný kontroler GitHub Actions a agenty v místním prostředí spuštěné ve službě Azure Kubernetes Service (AKS). Spouštěčé v místním prostředí používají pro trvalé úložiště sdílené složky SMB Azure.

Důležité

Opensourcový software je zmíněn v dokumentaci a ukázkách AKS. Software, které nasadíte, je vyloučeno z dohod o úrovni služeb AKS, omezené záruky a podpory Azure. Při používání open-source technologií spolu s AKS konzultujte dostupné možnosti podpory od příslušných komunit a správců projektů, abyste vytvořili plán.

Microsoft přebírá odpovědnost za vytváření balíčků s otevřeným zdrojovým kódem, které nasazujeme na AKS. Tato odpovědnost zahrnuje plnou správu procesu sestavení, skenování, podepisování, validace a hotfixů, spolu s kontrolou nad binárními soubory v kontejnerových obrazech. Další informace najdete v tématu Řízení zranitelností pro AKS a Podpora pro AKS a rozsah pokrytí.

Co je kontroler nástroje Actions Runner (ARC)?

Actions Runner Controller (ARC) je operátor Kubernetes, který orchestruje a škáluje self-hostované běžce pro GitHub Actions. Arc spoléhá na trvalé svazky (PV) ke sdílení informací o úloze mezi předávacím podem a výpočetním podem. Další informace naleznete v tématu O kontroleru Runner Actions.

Proč používat gitHub Actions v místním prostředí v AKS?

Samoobslužné hostování spouštěčů GitHub Actions v AKS poskytuje organizacím větší kontrolu, škálovatelnost a zabezpečení nad infrastrukturou CI/CD. Místo toho, abyste se spoléhali na spouštěče hostované na GitHubu, které jsou sdílené a dočasné, nabízejí spouštěče v místním prostředí:

  • Vlastní prostředí: Přizpůsobte spouštěče tak, aby odpovídaly konkrétním požadavkům na sestavení, testování nebo nasazení.
  • Zvýšení výkonu: Využijte trvalé úložiště a ukládání do mezipaměti, abyste zkrátili dobu sestavení a zlepšili spolehlivost.
  • Nákladová efektivita ve velkém: Dynamicky škálovat spouštěče ve vaší vlastní infrastruktuře a optimalizovat je pro časté nebo dlouhotrvající pracovní postupy.
  • Lepší zabezpečení a izolace: Udržujte úplnou kontrolu nad infrastrukturou a daty, což je ideální pro regulovaná odvětví nebo citlivé úlohy.

Běžné případy použití

  • Pipeliny CI/CD pro podniky: Pro týmy které potřebují konzistentní, zabezpečená a škálovatelná prostředí sestavení.
  • Velké monorepozice nebo kanály ML: Ukládání do mezipaměti nebo trvalost artefaktů je zásadní.
  • Optimalizace výkonu: Použití sdílených složek SMB úrovně Premium služby Azure Files ke snížení latence metadat a zvýšení IOPS

Požadavky

Proces nasazení

V této příručce se naučíte:

  • Pomocí Azure CLI vytvořte cluster AKS s více zónami.
  • Nasaďte sdílenou složku Azure, která se použije v trvalých svazcích AKS.
  • Nainstalujte na AKS kontroler GitHub Actions Runner (ARC).
  • Nainstalujte škálovací sadu ARC Runners a připojte souborové sdílení na AKS.
  • Spuštění ukázkového pracovního postupu pomocí GitHub Actions

Architektura nasazení

Tato referenční architektura ukazuje, jak implementovat řešení samo-hostovaného spouštěče GitHub Actions pomocí AKS a Azure File Share (SMB). Řešení umožňuje organizacím bezpečně spouštět úlohy pracovních postupů GitHubu ve své vlastní infrastruktuře Azure a současně udržovat efektivní správu a škálovatelnost úložiště.

Snímek obrazovky s diagramem architektury pro GitHub Actions se službou Azure Files v AKS

Architektura se skládá ze tří hlavních komponent:

  1. Vrstva integrace GitHubu: Umožňuje připojit pracovní postupy z úložišť GitHubu k infrastruktuře Azure.
  2. Vrstva orchestrace AKS: Spravuje kontejnerizované instance runneru a jejich životní cyklus.
  3. Vrstva úložiště: Poskytuje trvalé a dočasné schopnosti úložiště pro běžce.

Vrstva integrace GitHubu

Vrstva integrace GitHubu propojuje pracovní postupy z úložišť GitHubu s vaší infrastrukturou Azure. Úlohy pracovního postupu se odesílají z GitHubu prostřednictvím api.github.com a githubusercontent.com na spouštěče v místním prostředí.

Vrstva clusterové orchestrace AKS

Vrstva orchestrace clusteru AKS spravuje kontejnerizované instance spouštěče a jejich životní cyklus. Cluster je rozdělen do dvou oborů názvů: arc-controller a arc-runners.

arc-controller spravuje infrastrukturní řešení spouštěče a naslouchací komponenty úloh. arc-runners zpracovává tajné kódy, řízení přístupu a pody spouštěče. Spouštěče jsou kontejnerizované, používají dočasné úložiště a připojují se ke sdíleným a vyhrazeným svazkům.

Vrstva úložiště

Vrstva úložiště sdílených složek Azure poskytuje sdílenou složku NuGet s ReadWriteMany přístupem pro sdílené závislosti a dočasné úložiště pro běžící procesy, to vše podporované trvalými deklaracemi objemu.

Další krok

Přispěvatelé

Microsoft udržuje tento článek. Následující přispěvatelé ho původně napsali:

  • Jorge Arterio | Vedoucí poradce pro cloud
  • Jeff Patterson | Hlavní produktový manažer
  • Rena Shah | Vedoucí produktový manažer
  • Shekhar Singh Sorot | Produktový manažer 2
  • Erin Schaffer | Content Developer 2