Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
- Bu kılavuzda temel Kubernetes kavramları hakkında temel bilgiler yer alır.
- Azure hesabınızdaki bir abonelikte Sahip veya Kullanıcı Erişimi Yöneticisi ve Katkıda BulunanAzure yerleşik rolleri gereklidir.
Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz. Azure Cloud Shell'i kullanmaya başlama.
CLI referans komutlarını yerel olarak çalıştırmayı tercih ediyorsanız, Azure CLI'yi yükleyin. Windows veya macOS üzerinde çalışıyorsanız, Azure CLI'yi bir Docker konteynerinde çalıştırmayı düşünün. Daha fazla bilgi için Azure CLI'nin bir Docker konteynerında nasıl çalıştırılacağını inceleyin.
Yerel bir kurulum kullanıyorsanız, az login komutunu kullanarak Azure CLI'ye giriş yapın. Kimlik doğrulama işlemini tamamlamak için, terminalinizde görüntülenen adımları takip edin. Diğer oturum açma seçenekleri için bkz. Azure CLI kullanarak Azure'da kimlik doğrulaması.
İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma ve yönetme.
Yüklü olan sürümü ve bağımlı kütüphaneleri bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.
- Etkin bir GitHub hesabına ihtiyacınız vardır. Depo denetiminize göre fiyatlandırma bilgilerine bakın.
- Aşağıdaki kaynakların yüklü olması gerekir:
- Azure CLI sürüm 2.56 veya üzeri.
- Azure Kubernetes Service (AKS) önizleme uzantısı.
- jq sürüm 1.5 veya daha yeni.
- kubectl sürüm 1.21.0 veya üzeri.
- openssl sürüm 3.3.1 veya üzeri.
- Visual Studio Code veya seçtiğiniz başka bir kod düzenleyicisi.
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.
Mimari üç ana bileşenden oluşur:
- GitHub tümleştirme katmanı: GitHub depolarından iş akışlarını Azure altyapınıza bağlar.
- AKS orkestrasyon katmanı: Kapsayıcı tabanlı koşucu örneklerini ve bunların yaşam döngüsünü yönetir.
- 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