Azure Dosyaları'nı kullanarak Azure Kubernetes Service'te (AKS) yüksek erişilebilirliğe sahip GitHub Actions dağıtma genel bakışı

Bu kılavuzda, Azure Kubernetes Service (AKS) üzerinde çalışan yüksek erişilebilirlik özellikli bir GitHub Actions denetleyicisi ve kendi kendine barındırılan aracılar dağıtacaksınız. Kendi kendine barındırılan çalıştırıcılar, kalıcı depolama için SMB Azure dosya paylaşımlarını kullanır.

Önemli

AKS dokümantasyonu ve örneklerinde açık kaynaklı yazılımdan bahsedilmektedir. Dağıttığınız yazılım, AKS hizmet düzeyi anlaşmalarından, sınırlı garanti ve Azure desteğinden hariç tutulur. AKS ile birlikte açık kaynak teknolojisini kullanırken, bir plan geliştirmek için ilgili topluluklar ve proje sorumlularından mevcut olan destek seçeneklerine danışın.

Microsoft, AKS üzerinde dağıttığımız açık kaynak paketlerinin oluşturulmasından sorumluluk alır. Bu sorumluluk, yapı, tarama, imzalama, doğrulama ve hızlı düzeltme sürecinin tam sahipliğini içermenin yanı sıra, konteyner görüntülerindeki ikili dosyaların kontrolünü de kapsar. Daha fazla bilgi için AKS için güvenlik açığı yönetimi ve AKS destek kapsamı başlıklarına bakın.

Actions Runner Controller (ARC) nedir?

Actions Runner Controller (ARC), GitHub Actions için öz barındırma çalıştırıcılarını düzenleyen ve ölçeklendiren bir Kubernetes operatörüdür. ARC, çalışan pod ile kapsayıcı iş podu arasında iş bilgilerini paylaşmak için kalıcı birimlere (PV) dayanır. Daha fazla bilgi için Eylemler Çalıştırıcı Denetleyicisi Hakkında bölümüne bakın.

AKS'de kendi barındırdığı GitHub Actions neden kullanılır?

AKS'de github actions çalıştırıcılarını kendi kendine barındırma, kuruluşlara CI/CD altyapıları üzerinde daha fazla denetim, ölçeklenebilirlik ve güvenlik sağlar. GitHub'da barındırılan, paylaşılan ve kısa ömürlü runners yerine, kendi sunucularınızda barındırılan runners şunları sunar:

  • Özel ortamlar: Koşucuları belirli derleme, test veya dağıtım gereksinimlerine uyacak şekilde uyarlayın.
  • Performans kazanımları: Derleme sürelerini azaltmak ve güvenilirliği artırmak için kalıcı depolama ve önbelleğe alma özelliklerinden yararlanın.
  • Uygun ölçekte maliyet verimliliği: Sık veya uzun süre çalışan iş akışları için en iyi duruma getirerek kendi altyapınızdaki koşucuları dinamik olarak ölçeklendirin.
  • Gelişmiş güvenlik ve yalıtım: Düzenlenmiş sektörler veya hassas iş yükleri için ideal olan altyapı ve veriler üzerinde tam denetime sahip olun.

Yaygın kullanım örnekleri

  • Kurumsal CI/CD işlem hatları: Tutarlı, güvenli ve ölçeklenebilir derleme ortamlarına ihtiyaç duyan ekipler için.
  • Büyük monorepolar veya ML (Makine Öğrenimi) işlem hatları: Önbelleğe alma veya artifakt kalıcılığının kritik olduğu durumlar.
  • Performans iyileştirme: Meta veri gecikme süresini azaltmak ve IOPS'yi artırmak için Azure Dosyalar premium SMB paylaşımlarını kullanma.

Önkoşullar

Kurulum süreci

Bu kılavuzda şunların nasıl yapılacağını öğreneceksiniz:

  • Çok bölgeli AKS kümesi oluşturmak için Azure CLI'yi kullanın.
  • AKS kalıcı birimlerinde kullanmak için bir Azure dosya paylaşımı dağıtın.
  • AKS'ye GitHub Actions Runner Denetleyicisi'ni (ARC) yükleyin.
  • ARC koşucuları ölçek kümesini yükleyin ve dosya paylaşımını AKS'ye monte edin.
  • GitHub Actions'ı kullanarak örnek bir iş akışı çalıştırın.

Dağıtım mimarisi

Bu başvuru mimarisi, AKS ve Azure Dosya Paylaşımı (SMB) kullanarak GitHub Actions'ın kendi barındırdığı bir çalıştırıcı çözümünü nasıl uygulayacağınızı göstermektedir. Çözüm, kuruluşların gitHub iş akışı işlerini kendi Azure altyapıları içinde güvenli bir şekilde yürütmesine olanak tanırken, verimli depolama yönetimi ve ölçeklenebilirlik de sağlar.

AKS üzerinde Azure Dosyalar ile GitHub Actions için mimari diyagramının ekran görüntüsü.

Mimari üç ana bileşenden oluşur:

  1. GitHub tümleştirme katmanı: GitHub depolarından iş akışlarını Azure altyapınıza bağlar.
  2. AKS orkestrasyon katmanı: Kapsayıcı tabanlı koşucu örneklerini ve bunların yaşam döngüsünü yönetir.
  3. Depolama katmanı: Runners için kalıcı ve kısa ömürlü depolama özellikleri sağlar.

GitHub tümleştirme katmanı

GitHub tümleştirme katmanı, GitHub depolarından gelen iş akışlarını Azure altyapınıza bağlar. İş akışı işleri GitHub'dan api.github.com ve githubusercontent.com aracılığıyla kendi kendine barındırılan çalıştırıcılara gönderilir.

AKS kümesi düzenleme katmanı

AKS kümesi düzenleme katmanı, kapsayıcılı çalıştırıcı örneklerini ve bunların yaşam döngüsünü yönetir. Küme iki ad alanına ayrılır: arc-controller ve arc-runners.

arc-controller çalıştırıcı altyapısını ve iş dinleyicilerini yönetir. arc-runners gizli anahtarları, erişim denetimini ve çalıştırıcı podlarını işler. Çalıştırıcılar konteynerleştirilmiştir, geçici depolama kullanır ve paylaşılan ve özel birimlere bağlanır.

Depolama katmanı

Azure Dosya Paylaşımları depolama katmanı, sürekli birim talepleri tarafından desteklenen paylaşılan bağımlılıklar için ReadWriteMany erişime sahip NuGet dosya paylaşımı ve runners için geçici depolama sağlar.

Sonraki adım

Katkıda Bulunanlar

Microsoft bu makaleyi korur. Başlangıçta aşağıdaki katkıda bulunanlar yazdı:

  • Jorge Arterio | Üst Düzey Bulut Danışmanı
  • Jeff Patterson | Ana Ürün Yöneticisi
  • Rena Shah | Kıdemli Ürün Yöneticisi
  • Shekhar Singh Sorot | Product Manager 2
  • Erin Schaffer | İçerik Geliştirici 2