GitOps Odaklı Otomasyon için Şablonlar Vazgeçilmezdir

Yayınlanan: 2022-05-27

İçindekiler

GitOps Odaklı Otomasyon

Kubernetes, ölçeklendirme kolaylığı ve kapsayıcılı uygulamaların yönetimi ile ünlendi. Tüm uygulama yaşam döngüsü boyunca düğümleri, parçaları, kapsayıcıları, hizmetleri ve yapılandırma haritalarını sıralamanıza ve yönetmenize olanak tanır. Komut dosyaları aracılığıyla böyle bir esneklik ve kontrol elde etmek zordu.

Ancak Kubernets'in altyapıya duyuru yaklaşımı sayesinde her düzeyde hassas değişiklikler tanımlayabilirsiniz. Kubernetes, kapsayıcılar için otomatik planlama, devreye alma ve izlemeyi kolaylaştırmak için birden çok aracı entegre etmenize olanak tanır.

Böyle bir araç, yalnızca Kubernetes çevrelerinde değil, GitOps ekosisteminde de popüler hale gelen CNCF tarafından benimsenen bir otomasyon çerçevesi olan Helm'dir. Bu yazıda, Helm'in Kubernetes ve GitOps aracılığıyla bulutta yerel uygulamaları otomatikleştirmeye nasıl yardımcı olduğuna bakacağız.

Helm nedir?

Bir paket yöneticisi olarak tanımlansa da Helm, Kubernetes uygulamalarının kurulumunu, dağıtımını, yükseltmesini ve yönetimini otomatikleştirmek için güçlü bir araçtır. Kubernetes Manifestosunu yönetmek, sistemler arasında giderek daha karmaşık hale gelen bir görevdir. Tek bir sıralama için birden çok YAML dosyası ve sabit kod değeri gerekir. Kubernetes, dümen çizelgelerine yol açan basit bir paketleme biçimi aracılığıyla YAML dosyalarını yönetmek için daha iyi bir yola ihtiyaç duyuyordu. Ancak, Miğferin amacı şablonun ötesindedir.

Grafikler

Dümen çizelgeleri, Kubernetes uygulamaları için kullanılabilecek birimlerdir. Her grafik dosyaları, meta verileri ve uygulama altyapısını içerebilir. Go'da yazılan grafikler, ilişkili değişkenler, sürümler ve açıklamalarla birlikte belirli şablon dizinlerinde saklanacaktır. Bu çizelgeleri bir havuzda arşivler olarak saklayarak, yeniden kullanım için geliştirme ekibinizle paylaşabilirsiniz.

Kubernetes kümesine bir grafiğin bir kopyası yüklendikten sonra buna çıktı adı verilir. Grafik her kullanıldığında, birden çok kez gerçekleşebilecek yeni bir sürüm oluşturulur. Yayınlar, çizelgeleri izlemenize ve yüklemenize yardımcı olur.

Aşağıda Helm ile çalışırken bilinmesi gereken bazı önemli kurallar bulunmaktadır.

Chart.YAML: Grafiğinizin açıklamasını içeren ana dosya

Values.YAML: Grafiğinizin varsayılan değerlerini içeren dosya

Grafikler: Alt çizelgeleri olan bir dizin

Şablonlar: Şablonlar olarak tanımlanan Kubernetes Kaynak Dizini

şablonlar

Bir şablon klasörü, Helm'in önemli bir özelliğidir. Daha sonra kümeye uygulanan uygulamanın yapılandırma dosyalarını içerir. Şablon dizinindeki dosyalar, değerlerini değerler.YAML'den çağırır.

Neden Helm?

Helm, aşağıdaki faydaları sağladığı için sürekli teslimat ortamına büyük değer katar.

Geliştirilmiş üretkenlik:

Helm (Flux gibi diğer sıralama araçlarıyla birlikte), yazılımı tek bir düğme veya tek bir komutla sıralamanıza olanak tanır. Bu, ekibinizin yalnızca yazılım geliştirmeye odaklanmasını sağlayacaktır.

Süreci kolaylaştırır:

Grafik kavramı, aynı grafiği geliştirme, test ve üretim boyunca veya farklı ekiplerin iş akışı boyunca kopyalamanıza olanak tanır. Bu, sorunu önemli ölçüde azaltır.

Ölçüm:

Grafikler, ölçeklenebilirliği kolaylaştıran Kubernetes küme mimarisiyle uyumlu olacak şekilde tasarlanmıştır.

Kolay para çekme:

Helm, tüm sürümleri yöneterek sorunlar ortaya çıktığında değişiklikleri almayı kolaylaştırır.

GitOps, hem Helm hem de Flux'tan yararlanır

Helm, karmaşık sürümleri yönetebilir ve ölçüm yaparken işleri basit tutabilir. Bununla birlikte, değişiklikler kademeli olarak sunulduğundan, Helm'in Kubernetes kümesini güncellemek için ek araçlara ihtiyacı olacaktır.

Flux, Helm ile tüm Kubernetes kümesinin ve yardımcı program özelliklerinin tanımlandığı tüm önemli Git depoları arasında bir köprü görevi gördüğü için Helm için mükemmel bir dolgu çözümüdür.

Flux, GitOps modelini temel alan ve Git'i tüm değişikliklerin başlangıç ​​noktası ve gerçek kaynağı yapan bir dağıtım otomasyonu çözümüdür. Flux, kod havuzları ve Kubernetes kümeleri arasında tutarlılığı korumanıza olanak tanır ve kod değişiklikleri yapıldığında sıralamayı otomatikleştirir.

Kısacası Flux Helm, Git'ten Kubernetes kümesine grafikleri senkronize ederek grafik yayınlarını otomatikleştirir.

Flux, Helm ile nasıl çalışır?

Flux'u GitOps operatörü olarak kullanmak için, tüm Helm çizelgelerini YAML dosyaları ve Kubernetes özel kaynaklarıyla birlikte Git deposuna kaydedersiniz. Ayrıca, bu kaynakların değişmeyen görüntülerini bir kapsayıcı kayıt defterine koyarsınız.

'Pull' isteğiyle Git'te bir değişiklik yaptığınızda, Flux deponuzu kontrol edecek ve gerekli kaynakları sağlayacaktır. Değişiklikler daha sonra üretim kümesine dahil edilir. Bu, elbette süreci basitleştirir ve sigara içme testleri veya SRE'ye özgü değişiklikleri onaylama gibi çok daha fazlasını yapabilirsiniz, ancak şimdilik basit tutalım.

Boşta kalma süresini azaltırken hızı ve güvenilirliği artırmak için Flux 2 ve Helm'in birlikte nasıl çalıştığı hakkında daha fazla bilgi edinmek istiyorsanız, Scott Rigby'nin bu YouTube konuşmasına göz atın.

Çözüm

Helm, Kubernetes çalıştırmanın zorluğunu önemli ölçüde azaltır. Grafikler veya şablonlar konseptiyle GitOps ardışık düzenine büyük değer katar. Bununla birlikte, şablonlamanın ötesinde, uçtan uca dağıtım otomasyonu gibi başka gereksinimler de vardır. Bu, dümeni kullanmak için Flux (veya Flux'ta yerleşik Weave GitOps) gibi bir aracın gerekli olduğu yerdir. Ayrıca Magalix benzeri çözüm, Helm sürümlerinin uyumlu ve güvenli olmasını sağlar.

Weave KitApps, Kubernetes'i bir ölçekte yönetmenize olanak tanıyan bir sürekli teslim çözümüdür. Bu, herhangi bir şirketin GitOps'u benimsemesini ve uygulamasını kolaylaştırır. Weave GitOps, GitOps'u etkinleştirmek için 'gitops install' ve uygulamanıza eklemek için 'gitops add app' gibi komutlarla işlevsel kümeyi basitleştirir. Bu komutlar, aksi takdirde dağıtım otomasyonuna dahil olan temel karmaşık görevleri soyutlar. Weave GitOps, Helm, Flux, Magalix ve daha fazlası dahil olmak üzere tüm GitOps işlem hattını bir araya getirir; böylece zaman kaybetmeden GitOps'u kullanmaya başlayabilirsiniz.

kolay adımlarda nasıl amazon satıcısı olunur

yemek için dijital pazarlama