Düzenle

Aracılığıyla paylaş


Azure Stack HCI veya Windows Server'da Arc tarafından etkinleştirilen AKS ile uygulamaları dağıtma ve çalıştırma

Azure Kubernetes Service (AKS)
Azure Stack HCI
Azure Arc
GitHub
Azure Pipelines

Bu makaledeki bilgiler, Azure Arc tarafından etkinleştirilen Azure Kubernetes Service'te kapsayıcılı uygulamalar için uygulama dağıtım işlem hattı oluşturmaya yönelik öneriler sağlar. Uygulamalar Azure Stack HCI veya Windows Server üzerinde çalıştırılabilir. Bu kılavuz özellikle Azure Arc ve GitOps kullanan dağıtımlara yöneliktir.

Önemli

Bu makaledeki bilgiler Azure Stack HCI sürüm 22H2'de AKS ve Windows Server'da AKS-HCI için geçerlidir. AKS'nin en son sürümü Azure Stack HCI 23H2 üzerinde çalışır. En son sürüm hakkında daha fazla bilgi için Azure Stack HCI sürüm 23H2'de AKS belgelerine bakın.

Mimari

Azure Stack HCI veya Windows Server üzerinde çalışan AKS kümeleri için mimariyi gösteren diyagram.

Bu mimarinin bir Visio dosyasını indirin.

İş Akışı

Mimari, Azure Stack HCI veya Windows Server üzerinde çalışan AKS kümelerinde kapsayıcılı uygulamalar dağıtan bir uygulamayı gösterir. Kod olarak altyapıyı (IaC) yönetmek için GitOps kullanır.

  1. Operatör, Azure Stack HCI'de veya AKS kümesini barındırabilen Windows Server donanımında bir şirket içi altyapı ayarlar.
  2. Şirket içinde, bir yönetici Azure Stack HCI veya Windows Server altyapısına bir AKS kümesi dağıtır ve Azure Arc kullanarak kümeyi Azure'a bağlar. Yönetici, GitOps'u etkinleştirmek için Flux uzantısını ve yapılandırmasını AKS kümesine de dağıtır.
  3. GitOps yapılandırmaları IaC'i kolaylaştırır. Bu GitOps yapılandırmaları AKS kümesinin istenen durumunu temsil eder ve yerel yönetim tarafından sağlanan bilgileri kullanır. Yerel yönetim , Azure Stack HCI veya Windows Server'da dağıtılan AKS kümesi tarafından sağlanan yönetim araçlarını, arabirimleri ve uygulamaları ifade eder.
  4. Yönetici GitOps yapılandırmalarını bir Git deposuna iletir. Helm veya Kustomize deposunu da kullanabilirsiniz. AKS kümesindeki Flux bileşenleri depodaki değişiklikleri izler, güncelleştirmeleri gerektiği gibi algılar ve uygular.
  5. AKS kümesindeki Flux uzantısı, depolardaki yapılandırmalarda değişiklik yapıldığında GitOps akışından bir bildirim alır. Helm grafiklerini veya Kustomize'yi kullanarak istenen yapılandırmanın dağıtımını otomatik olarak tetikler.
  6. Yeni veya güncelleştirilmiş yapılandırma veya kod biçimindeki uygulama değişiklikleri, ilgili kapsayıcı görüntüsü güncelleştirmeleri de dahil olmak üzere belirlenen depolara gönderilir. Bu kapsayıcı görüntüsü güncelleştirmeleri özel veya genel kapsayıcı kayıt defterlerine gönderilir.
  7. AKS kümesindeki Flux işleci depolardaki değişiklikleri algılar ve kümeye dağıtımını başlatır.
  8. Değişiklikler, en düşük kapalı kalma süresini sağlamak ve kümenin istenen durumunu korumak için kümede sıralı bir şekilde uygulanır.

Bileşenler

  • Azure Stack HCI , şirket içinde sanallaştırılmış iş yüklerini çalıştırmak için kullanabileceğiniz hiper yakınsanmış bir altyapı (HCI) çözümüdür. Yazılım tanımlı işlem, depolama ve ağ teknolojilerinin bir birleşimini kullanır. Windows Server'ın üzerine kurulmuştur ve hibrit bulut deneyimi sağlamak için Azure hizmetleriyle tümleştirilir.
  • Azure Stack HCI üzerinde AKS, geliştiricilerin ve yöneticilerin Azure Stack HCI'de kapsayıcılı uygulamaları dağıtmak ve yönetmek için AKS kullanmasına olanak tanır.
  • Azure Arc , şirket içi, çoklu bulut ve uç ortamlarında sunucuları, Kubernetes kümelerini ve uygulamaları yönetmek için kullanabileceğiniz hibrit bir bulut yönetimi çözümüdür. Azure İlkesi, Bulut için Microsoft Defender ve Azure İzleyici gibi Azure yönetim hizmetlerini kullanarak farklı ortamlardaki kaynakları yönetmenizi sağlayarak birleşik bir yönetim deneyimi sağlar.
  • Git, Helm ve Bitbucket depoları (genel ve özel) Azure DevOps ve GitHub depoları dahil olmak üzere GitOps yapılandırmalarını barındırabilir.
  • Azure Container Registry ve Docker Hub dahil olmak üzere kapsayıcı kayıt defterleri (genel ve özel), kapsayıcı görüntülerini barındırır.
  • Azure Pipelines, depolara ve kayıt defterlerine yönelik güncelleştirmeleri otomatik hale getiren bir sürekli tümleştirme (CI) ve sürekli teslim (CD) hizmetidir.
  • Flux, Azure Arc özellikli Kubernetes kümelerinin kullanabileceği açık kaynaklı bir GitOps dağıtım aracıdır. Azure Arc bağlantısını kullanarak, belirlediğiniz Git, Helm veya Kustomize depolarında yapılan değişiklikleri izleyen küme bileşenlerini uygulayabilir ve bunları yerel kümeye uygulayabilirsiniz. Flux işleci, depodakiyle eşleştiğinden emin olmak için mevcut küme yapılandırmasını düzenli aralıklarla (veya tetikleyiciye göre) gözden geçirir. Farkları algılarsa, Flux bunları uygulayarak veya yapılandırma kayması durumunda istenen yapılandırmayı yeniden uygulayarak düzelter.

Senaryo ayrıntıları

Kapsayıcıları büyük ölçekte çalıştırmak için zamanlamayı, dağıtımı, ağı, ölçeklendirmeyi, sistem durumunu izlemeyi ve kapsayıcı yönetimini otomatikleştirmek için bir düzenleyici gerekir. Kubernetes, yeni kapsayıcılı dağıtımlar için yaygın olarak kullanılan bir düzenleyicidir. Kubernetes kümelerinin ve ortamlarının sayısı arttıkça bunları tek tek yönetmek zor olabilir. Azure Arc özellikli Kubernetes, GitOps, Azure İzleyici ve Azure İlkesi gibi Azure Arc özellikli hizmetleri kullanmak yönetim yükünü azaltır ve bu zorluğu gidermeye yardımcı olur.

Dikkat edilmesi gereken noktalar

Bu önemli noktalar, bir iş yükünün kalitesini artırmak için kullanılabilecek bir dizi yol gösteren ilke olan Azure İyi Tasarlanmış Çerçeve'nin yapı taşlarını uygular. Daha fazla bilgi için bkz . Microsoft Azure İyi Tasarlanmış Çerçeve.

İyi Tasarlanmış Çerçeve, bulut tabanlı çözümlerin avantajlarını değerlendirmeye ve iyileştirmeye yardımcı olan kılavuz ilkeler sağlar. Şirket içi AKS dağıtımlarının Azure teknolojileriyle doğal tümleştirmesi göz önünde bulundurulduğunda, GitOps tasarımınıza ve uygulamanıza çerçeve önerileri uygulamak uygun olacaktır.

Güvenilirlik

Güvenilirlik, uygulamanızın müşterilerinize sağladığınız taahhütleri karşılayabilmesini sağlar. Daha fazla bilgi için bkz . Güvenilirlik sütununa genel bakış.

  • GitOps tabanlı çözümlerde yüksek güvenilirlik sağlamak için Kubernetes'in yüksek kullanılabilirlik özelliklerini kullanın.
  • Birden çok konuma veya kümeye yayılan dağıtımlarda uygulama kullanılabilirliğini daha da artırmak için Flux v2'yi kullanın.
  • İnsan hatası olasılığını azaltmak için otomatik dağıtımları kullanın.
  • Otomatik testin verimliliğini artırmak için bir CI/CD işlem hattını mimarinizle tümleştirin.
  • Sorunları hızla belirleyip çözebilmeniz için tüm kod değişikliklerini izleyin. Bu operasyonel değişiklikleri izlemek için GitHub veya Azure DevOps'un yerleşik özelliklerini kullanın. Bu araçları kullanarak ilkeleri ve otomasyonu uygulayarak değişikliklerin izlendiğinden, uygun onay sürecini izlediğinden ve sürdürülebilir olduğundan emin olabilirsiniz.

Güvenlik

Güvenlik, kasıtlı saldırılara ve değerli verilerinizin ve sistemlerinizin kötüye kullanılmasına karşı güvence sağlar. Daha fazla bilgi için bkz . Güvenlik sütununa genel bakış.

  • Mimarinin güvenlik avantajlarını anlama. Flux v2, Kustomize, GitOps ve DevOps işlem hatları ile operasyonel değişiklikler otomasyon aracılığıyla uygulanır. Dal koruması, çekme isteği gözden geçirmeleri ve sabit geçmiş gibi mekanizmalardan yararlanarak bu işlem uygulamalarını uygulayan kodu denetleyebilir ve denetleyebilirsiniz. IaC yaklaşımı, altyapıya erişim izinlerini yönetme gereksinimini ortadan kaldırır ve en az ayrıcalık ilkesini destekler. Ad alanı tabanlı yapılandırma kapsamı için Flux desteği, çok kiracılı senaryoları kolaylaştırır.

  • Şifrelemeyi anlama. Küme yapılandırma hizmeti, veri güvenliğini sağlamaya yardımcı olmak için Flux yapılandırma kaynak verilerini bir Azure Cosmos DB veritabanında depolar ve bekleyen verileri şifreler.

  • Özel uç noktaları kullanmayı göz önünde bulundurun. GitOps, Azure Arc ile ilgili hizmetlere bağlantı için Azure Özel Bağlantı destekler.

Azure ilkelerini ve Azure Arc'ı kullanma

Azure Arc, kaynak yönetimi kapsamını Azure'ın ötesine genişletir. Genişletilmiş kapsam, fiziksel ve sanal sunucular için geçerli olan bir dizi avantaj sağlar. AKS bağlamında bu avantajlar şunlardır:

  • İdare. Azure Arc, Kubernetes için Azure İlkesi ve ilgili ilke uyumluluğunun merkezi raporlamasını kullanarak AKS kümelerini ve podlarını etkileyen çalışma zamanı idaresini zorunlu kılabilir. Örneğin, Kubernetes kümesini hedefleyen giriş trafiği için HTTPS kullanımını zorunlu kılmak veya kapsayıcıların yalnızca belirlediğiniz belirli bağlantı noktalarını dinlediğinden emin olmak için bu özelliği kullanabilirsiniz.
  • geliştirilmiş işlemler. Azure Arc, GitOps aracılığıyla otomatik küme yapılandırması için gelişmiş destek sağlar.

Azure İlkesi yerleşik aracılığıyla merkezi GitOps yönetimini kolaylaştırırGitOps'u Kubernetes küme ilkesi tanımına dağıtın. Bu ilkeyi atadıktan sonra, seçtiğiniz GitOps tabanlı yapılandırmaları, Azure Resource Manager kaynakları atama kapsamındaysa, belirlediğiniz Azure Arc özellikli Kubernetes kümelerine otomatik olarak uygular.

Maliyet iyileştirme

Maliyet iyileştirmesi gereksiz giderleri azaltmak ve operasyonel verimlilikleri iyileştirmektir. Daha fazla bilgi için bkz . Maliyet iyileştirme sütununa genel bakış.

  • Yönetim ve bakım yükünüzü en aza indirmek için GitOps'un sağladığı otomasyonu kullanın. Basitleştirilmiş operasyonel model, bakım için daha az çaba gerektirir ve operasyonel maliyetlerin azalmasına neden olur.

  • Arc tarafından etkinleştirilen AKS'yi kullanın. AKS Arc, bilgi işlem kaynaklarını otomatik ölçeklendirmeye ve kapsayıcılı hale getirmenin doğasında bulunan artan iş yükü yoğunluğuna yönelik yerleşik destek sağlar. Otomatik ölçeklendirme, fiziksel altyapınızı doğru boyutlandırmanıza ve veri merkezi birleştirme girişimlerini hızlandırmanıza yardımcı olabilir ve bu da tasarruf etmenizi sağlayabilir.

Operasyonel mükemmellik

Operasyonel mükemmellik, bir uygulamayı dağıtan ve üretimde çalışır durumda tutan operasyon süreçlerini kapsar. Daha fazla bilgi için bkz . Operasyonel mükemmellik sütununa genel bakış.

  • Tüm AKS uygulaması ve küme altyapısı verilerini depolayan tek bir gerçek kaynağı sağlamak için GitOps depolarını kullanın. Bu depolar, değişiklikleri kümeye uygulayan tek bileşen olarak görev yapabilir.

  • Yeni yazılım sürümlerini sunmak için gereken süreyi kısaltmak için Altyapıya DevOps yaklaşımıyla GitOps tümleştirmesinin avantajlarından yararlanın. Ayrıca bulut tabanlı ve şirket içi kapsayıcılı iş yükleri için tutarlı bir işletim modeli oluşturmak üzere Azure Resource Manager ve Azure Arc kullanmanızı öneririz. GitOps yapılandırmalarını farklı düzeylerde denetlemek için Azure İlkesi Flux işleçlerinin özellikleriyle birlikte kullanın. Bunu yaparak, kurumsal düzeyde, tek bir AKS kümesi düzeyinde, hatta bir küme içindeki belirli ad alanları düzeyinde denetim oluşturabilirsiniz.

  • Giriş denetleyicileri, hizmet kafesleri, güvenlik ürünleri ve izleme çözümleri gibi kapsayıcılı altyapının bileşenleri için bir temel uygulamak üzere kapsamı bir küme (veya birden çok küme) olarak belirlenmiş GitOps yapılandırmaları oluşturun. Bunu yapmak, kümelerinizin temel altyapı gereksinimlerini karşıladığından emin olmanıza yardımcı olabilir.

  • İş yüklerinizin kaynaklarını daha ayrıntılı bir düzeyde (podlar , hizmetler ve giriş yolları gibi) denetlemenizi sağlayan ad alanı düzeyinde GitOps yapılandırmaları oluşturun ve bu nedenle iş yüklerinizin uygulama standartlarına uygun olduğundan emin olun. Bu yönergeleri izleyerek AKS Arc uygulamalarının dağıtım ve yönetiminin verimli, verimli ve uygun maliyetli kalmasını sağlayabilirsiniz.

GitOps kullanma

GitOps, AKS kümelerinin yönetimi için harika bir eşleşmedir. Kubernetes bildirim temelli modeli temel alır. Küme durumu ve bileşenleri kodda açıklanmıştır. GitOps bu kodu bir Git deposunda depolar ve hedef ortamın istenen durumunu tanımlamak için kullanır.

Kod değişiklikleri sürüm denetimine, denetime ve isteğe bağlı incelemelere ve onaylara tabidir. AKS altyapısının ve kapsayıcılı iş yüklerinin güncelleştirmelerini otomatik olarak tetikleme amacıyla gözden geçirmeleri ve onayları kullanabilirsiniz. GitOps, özel küme bileşenleri kümesinin deponun durumunu yokladığı bir çekme modeli kullanır. Bir değişiklik algılandığında, AKS tarafından barındırılan bir GitOps bileşeni yeni yapılandırmayı alır ve uygular.

GitOps, doğrudan küme yönetimi gereksinimini önemli ölçüde en aza indirerek basitleştirilmiş bir işletim modeli ve daha fazla güvenlik sağlar. GitOps, en az ayrıcalık ilkesini destekler. Örneğin GitOps, kubectl aracılığıyla kümeleri el ile değiştirme gereksinimini ortadan kaldırır, bu nedenle daha az ayrıcalık gerekir. GitOps ayrıca önerilen ilke değişiklikleri hakkında erken geri bildirim sağlar. Erken geri bildirim geliştiriciler için özellikle değerlidir çünkü hatalarla ilişkili riski ve maliyetleri azaltmalarına yardımcı olur.

GitOps, uyumluluk ve idare gereksinimlerini karşılamak için kuruluşunuz genelinde küme yapılandırmalarının standartlaştırılmasını basitleştirir. Ağ ilkeleri, rol bağlamaları ve pod güvenlik ilkeleri gibi her kümeye ve bileşenlerine uygulamak istediğiniz bir temel yapılandırma tanımlayabilirsiniz. Bu yapılandırmayı Azure Arc özellikli tüm kümelerde uygulamak için kaynak gruplarını veya abonelikleri hedefleyen Azure İlkesi kullanabilirsiniz. Bu ilkeler, mevcut kaynaklara ve ayrıca ilke ataması sonrasında oluşturulan kaynaklara otomatik olarak uygulanır.

GitOps, kümenizi bir veya daha fazla Git deposuna bağlar. Küme yapılandırmasının farklı yönlerini açıklamak için her bir depo kullanabilirsiniz. Sonuçta elde edilen bildirim temelli model, ad alanları veya dağıtımlar gibi Kubernetes kaynaklarının bildirim dosyaları aracılığıyla sağlanmasını ve yönetilmesini kolaylaştırır. Flux v2 ve Kustomize ile birlikte kapsayıcılı uygulamaların otomatik dağıtımını kolaylaştıran Helm grafiklerini veya ortama özgü değişiklikleri açıklayan Kustomize dosyalarını da kullanabilirsiniz.

Flux kullanma

Flux, Kubernetes işleci olarak uygulanır. Bir denetleyici kümesi ve ilgili bildirim temelli API'leri kullanır. Denetleyiciler, amaçlanan işlevselliği sağlamak için toplu olarak çalışan bir dizi özel kaynağı yönetir.

GitOps, Azure Arc özellikli kubernetes kümesinde küme uzantısı olarak Microsoft.KubernetesConfiguration/extensions/microsoft.flux etkinleştirilir. Küme uzantısını yükledikten sonra, yapılandırma kaynaklarının microsoft.flux içeriğini kümeyle eşitleyen ve kümeyi istenen bir duruma mutabık hale getiren bir veya daha fazla fluxConfigurations kaynak oluşturabilirsiniz.

Varsayılan olarak, microsoft.flux uzantı Flux denetleyicilerini (Kaynak, Kustomize, Helm ve Bildirim) ve FluxConfig Özel Kaynak Tanımları (CRD), fluxconfig-agentve fluxconfig-controller'yi yükler. Ayrıca, bu denetleyicilerden hangilerini yüklemek istediğinizi seçebilir ve isteğe bağlı olarak Docker görüntülerinin güncelleştirilmesini ve alınmasını kolaylaştıran Flux image-automation ve image-reflector denetleyicileri yükleyebilirsiniz.

Bir fluxConfigurations kaynak oluşturduğunuzda, hedef Git deposu gibi parametreler için sağladığınız değerler, kümede GitOps işlevselliğini etkinleştiren Kubernetes nesnelerini oluşturmak ve yapılandırmak için kullanılır.

Flux v2 küme uzantılarını dağıtıp yapılandırdığınızda, aşağıdaki bileşenler ve işlevler sağlanır:

  • source-controller. Git depoları, Helm depoları ve S3 demetleri gibi bulut depolama hizmetleri gibi özel yapılandırma kaynaklarını izler ve bu kaynaklarla eşitler ve yetki verir.
  • kustomize-controller. Kubernetes bildirimlerini ve ham YAML dosyalarını içeren Kustomization CRD'lerini temel alan özel kaynakları izler. Bildirimleri ve YAML dosyalarını kümeye uygular.
  • helm-controller. grafikleri temel alan ve tarafından source-controllerortaya çıkarılan Helm depolarında depolanan özel kaynakları izler.
  • notification-controller. Git deposundan kaynaklanan gelen olayları ve Microsoft Teams'i veya Slack'i hedefleyen olaylar gibi giden olayları yönetir.
  • FluxConfig CRD. Flux'a özgü Kubernetes nesnelerini tanımlayan özel kaynakları temsil eder.
  • fluxconfig-agent. Yeni ve güncelleştirilmiş Flux yapılandırma kaynaklarını algılar. Kümede ilgili yapılandırma güncelleştirmelerini başlatır. Durum değişikliklerini Azure'a iletir.
  • fluxconfig-controller. fluxconfigs Özel kaynakları izler.

Flux sürüm 2 şu ek özellikleri sağlar:

Kategori Özellik
Altyapı ve iş yükü yönetimi Dağıtım bağımlılığı yönetimi
Kubernetes rol tabanlı erişim denetimi (RBAC) ile tümleştirme
Kümeler ve bunların iş yükleri için sistem durumu değerlendirmeleri
Görüntü tarama ve düzeltme eki uygulama da dahil olmak üzere Git'e yönelik otomatik kapsayıcı görüntüsü güncelleştirmeleri
Küme API'si sağlayıcılarıyla birlikte çalışabilirlik
Güvenlik ve idare Dış sistemlere uyarı verme (web kancası gönderenleri aracılığıyla)
Açık İlke Aracısı Ağ Geçidi Denetleyicisi desteği de dahil olmak üzere ilke temelli doğrulama
Kapsayıcı görüntüsü tarama ve düzeltme eki uygulama
Dış sistemlere uyarı verme (web kancası gönderenleri aracılığıyla)
Diğer GitOps akışlarıyla tümleştirme GitHub, GitLab ve Bitbucket gibi çeşitli Git sağlayıcılarıyla tümleştirme
GitHub Actions dahil olmak üzere iş akışı sağlayıcılarıyla birlikte çalışabilirlik

Daha fazla bilgi için bkz . AKS ve Azure Arc özellikli Kubernetes ile GitOps Flux v2 yapılandırmaları.

Performans verimliliği

Performans verimliliği, kullanıcılar tarafından anlamlı bir şekilde yerleştirilen talepleri karşılamak amacıyla iş yükünüzü ölçeklendirme becerisidir. Daha fazla bilgi için bkz . Performans verimliliği sütununa genel bakış.

Küme iş yükleri, Kubernetes platformunda bulunan ölçeklenebilirlik ve çeviklikten yararlanmaktadır. Flux v2, uçtan uca yazılım teslimi için gereken süreyi azaltarak ek çeviklik sunar.

  • Kubernetes kümenizi ve altyapı kurulumunuzu belirli iş yükleriniz için iyileştirin. Gerekli ayarları belirlemek için uygulama geliştiricisiyle birlikte çalışmanızı öneririz.
  • Kubernetes'te otomatik ölçeklendirme özelliğini kullanın. Daha fazla bilgi için bkz . Azure Arc tarafından etkinleştirilen AKS'de küme otomatik ölçeklendirme.
  • Uygulamayı iyileştirmek için bir önbellek ekleyin.
  • Bir performans taban çizgisi oluşturun. Mimarinizi karşılaştırmak ve performansı etkileyen sorunları veya performans sorunlarını belirlemek için ölçümleri ve izleme araçlarını kullanın.

Katkıda Bulunanlar

Bu makale Microsoft tarafından yönetilir. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.

Asıl yazarlar:

Diğer katkıda bulunanlar:

Genel olmayan LinkedIn profillerini görmek için LinkedIn'de oturum açın.

Sonraki adımlar