Yazılım geliştirme geçmişinden geliyorsanız, muhtemelen Paket Yöneticisi terimine aşinasınızdır. Paket Yöneticileri; bağımlılıkları yüklemenize, sürümleri yükseltmenize ve düşürmenize vb. olanak tanır. Bu eğitimde, Kubernetes için oldukça popüler bir paket yöneticisi olan Helm.
aracına göz atacağız. Helm, Kubernetes uygulamalarının yönetilmesine yardımcı olur. Helm ile uygulama meta verilerini, bağımlılıklarını ve yapılandırmalarını belirterek bir Kubernetes uygulaması tanımlayabilirsiniz. Helm ayrıca Kubernetes üzerinde uygulamalar yükleyebilir, bunun yanı sıra uygulamaları yükseltebilir ve düşürebilir. Son olarak, Helm dosyasını kullanarak uygulamanızı başkalarıyla paylaşabilirsiniz. Bu eğitimde, Windows işletim sisteminde Helm 3'ü nasıl kuracağınızı, ayrıca chart'ları ve sürümleri nasıl kuracağınızı, yükselteceğinizi, geri alacağınızı ve yöneteceğinizi göstereceğiz.
Hadi başlayalım!
Gereksinimler
Eğitime başlamadan önce, ilk olarak aşağıdaki kurulumlara sahip olduğunuzdan emin olmanız gerekir:
-
Windows üzerinde Kubernetes kurulumu yapmadıysanız, başlamanın en kolay yolu Docker Desktop kullanmaktır. Şu adrese gidin: https://www.docker.com/products/docker-desktop. Docker Desktop uygulamasını indirin ve kurun. Bu eğitimde Windows ile çalışacağız. Bu nedenle WSL 2 Backend kurulumu yapmamız gerekecek. Bu, Windows için bir Linux alt sistemidir ve Docker desteği sağlar:

Once the Docker Desktop hazır olduğunda, Settings -> Kubernetes seçeneğine gidin ve şu seçeneği işaretleyin: Enable Kubernetes:


Her şeyin düzgün çalışıp çalışmadığını kontrol etmek için, kullandığınız sistem hangisiyse terminal/powershell ekranına gidin ve aşağıdaki komutu yazın:
|
1 |
kubectl |
Aşağıdaki çıktıyı görüyorsanız, başlamaya hazırsınız demektir:

Alternatif olarak, Ubuntu üzerinde çalışmaya karar verirseniz detaylı kılavuzumuzu takip edebilirsiniz: Ubuntu 20.04 üzerinde Kubernetes Nasıl Kurulur ve Kullanılır.
Ayrıca, kurulum işlemine başlamadan önce Helm ile ilişkili bazı temel terimlere göz atalım.
-
Charts
Kubernetes YAML dosyaları Helm chart'ları içinde paketlenir.
-
Helm Depoları
Helm, depolar için destek sağlar. Bir Helm deposu, başkalarının kullanabilmesi için Helm chart'larını barındıran bir konumdur. Helm, kendi depolarınızı oluşturmanıza izin vermenin yanı sıra üçüncü taraf depoları da destekler.
-
Tiller
Tiller, Helm'in sunucu bileşenidir. Kubernetes kümesine kurulması gerekir. Helm Chart'ını alır ve kümeyi buna göre yapılandırır.
Ayrıca, Helm hakkında detaylı bir genel bakış sunan blog yazımıza göz atabilir ve Helm'in Kubernetes'e uygulama dağıtımını basitleştirme yöntemlerini inceleyebilirsiniz.
Şimdi başlamaya hazırız!
Adım 1: Helm 3 Kurulumu
Helm 3 kurulumu oldukça basit bir işlemdir. Sürümler Helm GitHub sayfasında mevcuttur. Tercih ettiğiniz işletim sistemine göre kullanacağınız sürümü indirebilirsiniz. Bu eğitimde Windows işletim sistemini kullanacağız, bu nedenle Windows için aşağıdaki adımları takip edin:
-
GitHub sayfasında, Windows için Helm ikili dosyalarını indirin.
-
İndirme işlemi tamamlandığında, sıkıştırılmış arşivi İndirilenler klasörünüzde veya indirdiğiniz yerde bulabilirsiniz.
-
Ardından, bu arşivi uygun bir konuma taşıyın ve arşivden çıkarın. Çıkarılan içerikte helm.exe dosyasını bulmalısınız:

-
Klasör konumunu kopyalayın ve sisteminizin ortam değişkenlerindeki PATH değişkenine ekleyin.
-
İşlemi tamamladıktan sonra terminali açın ve aşağıdaki komutu yazın:
|
1 |
helm |
Aşağıdaki çıktıyı görüyorsanız, Helm kurulumunu tamamlamışsınız demektir. Ardından sonraki adımlara geçebilirsiniz:

Adım 2: Depoları Kurma ve Bir Helm Chart'ı Yükleme
Helm, depolara erişimi ve depoların yönetimini destekler. Depolar, Helm Chart'larının saklandığı yerlerdir. Başlangıçta Helm'in kendi deposu yoktur. Bunun yerine Helm, yöneticileri ve DevOps uzmanlarını kendi depolarını üretmeye teşvik eder. Bu, Kubernetes kümenizde MongoDB barındırmak istiyorsanız, bunu Helm Deposuna kendiniz eklemeniz gerekeceği anlamına gelir. Depoları bulmanıza yardımcı olması için Artifact.io kullanabilirsiniz. Bu, tüm Helm chart'ları için açık kaynaklı bir katalogdur ve CNCF tarafından yönetilmektedir..
Aşağıda size bir depoyu nasıl kuracağınızı ve yazılımı nasıl indirip yükleyeceğinizi göstereceğiz. Örnek olarak MongoDB kurulumunu ele alacağız. Kubernetes kümenize MongoDB kuracağınızı varsayalım. Kurulum için aşağıdaki adımları izleyin:
-
İlk olarak, şu adrese gidin: https://artifacthub.io.
-
Ardından, MongoDB'yi aratın. Arama yaptığınızda, birçok seçeneğin mevcut olduğunu göreceksiniz. Bizim ilgilendiğimiz seçenek: MongoDB by Bitnami:

-
Arama sona erdiğinde farklı seçenekler göreceksiniz. Her bir chart'ın karşısında yayıncıyı, sürümü ve diğer ilgili bilgileri görebilirsiniz. İstediğiniz chart'ı bulduğunuzda, onu seçmeniz gerekir. Burada MongoDB by Bitnami seçeneğine tıklıyoruz:

-
Şimdi teknik kısım gerçekten başlayabilir. Genel açıklamaya bakarsanız, hizmetlerden herhangi birini kurmak isteyen herkes için iyi bir kılavuzun mevcut olduğunu göreceksiniz. Farklı seçenekleri, yapılandırmaları, parametreleri, chart'ın nasıl silineceğini ve bilgiye ihtiyaç duyabileceğiniz diğer her şeyi inceleyebilirsiniz. Şu butonu bulun: Install butonu ve ona tıklayın:

-
İşte MongoDB'yi kurmak için ihtiyacınız olan her şey. İlk olarak, depoyu eklemeniz ve ardından chart'ı kurmanız gerekir. Depoyu eklemek için terminali açın ve şu komutu yazın:
|
1 |
helm repo add bitnami https://charts.bitnami.com/bitnami |
Aşağıdaki çıktıyı göreceksiniz:

Depoyu kurduğunuza göre, şimdi chart'ı yüklemeniz gerekiyor. İletişim kutusundaki komutu kopyalayın ve ardından çalıştırın:
|
1 |
helm install my-mongodb bitnami/mongodb --version 10.23.10 |
İşlem tamamlandığında MongoDB kurulumunuz hazır olacaktır.
Adım 3: Sürümleri Yönetme
Yazılım geliştirmede sürüm yönetimi hayati önem taşır. Her zaman önceki sürümlere güncellemeniz veya geri dönmeniz gereken zamanlar olur. Neyse ki, Helm'de sürümleri yönetmek nispeten basit bir işlemdir. Helm, her zaman önceki sürüme geri dönebilmeniz için sürüm numaralarını tutar. Benzer şekilde, uygulamanızın dağıtıldığını ve yayında olduğunu ve yapılandırmalar yapmanız gerektiğini varsayalım; Helm bunu da destekler. Aşağıda, bu işlemleri gerçekleştirmenize yardımcı olacak bazı en iyi uygulamaların üzerinden geçeceğiz.
-
Uygulama nasıl güncellenir
Varsayalım ki values.YAML dosyanızda, uygulamanın çalışan iki örneğine (instance) sahip olmanız gerektiğini belirttiniz. Bunun nedeni uygulamanızın yüksek oranda erişilebilir (highly available) olması gerekmesi olabilir. Ancak daha sonra, uygulamanın üç örneğe sahip olması gerektiğini fark ediyorsunuz. Helm olmadan, önce uygulamayı durdurmanız, ardından yapılandırmanız ve yeniden dağıtmanız gerekir. Helm kullanarak, önce values.YAML dosyasında değişiklikler yapabilir ve ardından aşağıdaki komutu çalıştırmanız yeterlidir. Helm dosyalarınızın bulunduğu dizinde aşağıdaki komutu çalıştırın:
|
1 |
helm upgrade <app-name> |
-
Sürüm nasıl geri alınır
Şimdi sürümünüzün bozulduğunu varsayalım. Belki yanlış port numaralarını veya yolları yapılandırdınız. Herhangi bir önceki sürüme geri dönmek için tek yapmanız gereken aşağıdaki komutu çalıştırmaktır; ardından Helm sürümü önceki versiyona geri döndürecektir:
|
1 |
C:\> helm rollback <release> |
Helm tüm sürümlerle ve sürüm oluşturmayla ilgilenecektir. Bu, Kubernetes ile Helm kullanmanın en büyük avantajlarından biridir. Herhangi bir uygulamanın tüm sürümlerini görmek için Helm chart'larını ve YAML dosyalarını içeren dizinde aşağıdaki komutu çalıştırın:
|
1 |
helm history RELEASE |
Adım 4: Kendi Chart'ınızı Oluşturun
Son olarak, artık Helm konusunda rahat olduğunuza ve nasıl çalıştığını anladığınıza göre, kendi chart'ınızı oluşturma zamanı geldi. Kendi özel chart'ınızı oluşturarak, uygulamanızı kolayca dağıtabilir ve herhangi bir depoda barındırabilirsiniz. Aşağıda özetleyeceğimiz adımları izlerseniz chart'ınızı oluşturmak oldukça basit bir işlemdir. İlk olarak, terminali açın ve aşağıdaki komutu çalıştırın:
|
1 |
helm create <chart-name> |
Bu, belirttiğiniz isimle bir dizin oluşturacaktır. Biz şu ismi kullanıyoruz: my-app. Klasörün içeriğine bakalım:
|
1 2 |
cd my-app ls |
Aşağıdaki yapıyı elde edeceksiniz:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
charts/ templates/ ├─ tests/ │ ├─ test-connection.yaml ├─ deployment.yaml ├─ hpa.yaml ├─ ingress.yaml ├─ NOTES.txt ├─ service.yaml ├─ serviceaccount.yaml ├─ _helpers.tpl ├─ .helmignore ├─ Chart.yaml ├─ values.yaml |
İşte çıktıdaki içeriğin bir özeti:
- charts klasörü – Bağımlı chart'ları eklemek için kullanılır.
- templates klasörü – Kümede konuşlandırılacak yapılandırma.
- YAML dosyası – Helm chart yapısının taslağı.
- YAML dosyası – Chart'ı yapılandırmak için biçimlendirme bilgileri.
Ardından, chart'ınızı yüklemek ve yapılandırmak için aşağıdaki adımları izleyin:
-
Görüntüyü yapılandırın ve çekin
Şu dosyayı açın: values.YAML dosyası. Burada image düğümünü bulun. Ardından, istediğiniz gibi yapılandırabilirsiniz. Olası değerler şunlardır: IfNotPresent, Always, Latest. Değerlerin tam listesini resmi belgelerde bulabilirsiniz.
-
Chart adını geçersiz kılma
Bu adım isteğe bağlıdır, dilerseniz atlayabilirsiniz:

-
Servis adı
Şu dosyayı açın:
values.YAML dosyası ve şu düğümü bulun:
serviceName. Ardından, istediğiniz adı ekleyin. Chart'ı yüklemeden önce bir ad hazırlamış olmak iyidir:

-
Chart'ı yükleyin
Son olarak, chart'ı yüklemek için aşağıdaki komutu çalıştırın:
|
1 |
helm install <full name override> <chart name>/ --values <chart name>/values.yaml |
Kümede konuşlandırmadan önce chart'ınızı yapılandırmak için mevcut tüm seçenekleri dikkatlice incelemenizi öneririz.
Geliştiriciler Neden Helm'i Seviyor?
Helm, dağıtımları zaman zaman başlatıp durdurması gereken geliştiriciler ve DevOps uzmanları arasında popülerlik kazanıyor. İşte Helm'in başlıca avantajlarından bazıları:
-
Helm, dağıtım sürecini basitleştirir. Öğrenilecek yeni bir şey getirmez, aksine mevcut YAML dağıtımlarının kullanıcı tarafından kolayca yapılandırılabilmesini sağlar.
-
Küme sayısı veya bağlantı noktaları gibi yapılandırmaları sık sık değiştirmek yerine, Helm bunu kolayca yapılandırılabilir hale getirir. Kullanıcının tek yapması gereken, değerleri şu dosyada güncellemektir: values.YAML dosyası.
-
Helm, uygulamayı depolarda paketleyerek diğer kullanıcılarla paylaşmaya olanak tanır.
Sonuç
Bu eğitimde, Windows üzerinde sıfırdan Helm paket yöneticisinin nasıl kurulacağını inceledik. Helm'in gücünden yararlanmak için net bir şekilde anlaşılması gereken farklı temel kavramlara baktık. Ayrıca keşfedilen Helm depolarında bulunan farklı işlevleri de gördük. Artık kendinizi Helm konusunda rahat hissetmeli ve bir sonraki Kubernetes projenizde/dağıtımınızda uygulamalısınız.
Kubernetes ve işlevleri hakkındaki bilginizi daha da artırmak için blogumuzdaki diğer eğitimlere göz atabilirsiniz:
- Kubernetes'i Tanımak
- How To Create a Kubernetes Cluster Using Kubeadm on Ubuntu 18.04
- Deploy a PHP Application on a Kubernetes Cluster with Ubuntu 18.04
Keyifli Çalışmalar!
Yorumlar
Henüz yorum yapılmamış. İlk siz olun.