Helm Paket Yöneticisi Kurulumu

Bir önceki makalemde sizlere Helm paket yöneticisin ve mimarisinden bahsetmiştim. Şimdi sıra geldi Helm paket yöneticisi kurulumunu gerçekleştirmeye. Aşağıdaki adımlar takip edilerek mevcut bir kubernetes cluster’ında helm kurulumu gerçekleştirilebilir.

Tiller servis kullanıcısı

Hatırlarsanız Helm’in mevcut sürümünde istemci ve sunucu olmak üzere iki ana bileşeni olduğundan bahsetmiştim. Bu bileşenlerden sunucu rolünü üstelenen tiller’ın istemci tarafından paket kurulumuna dair gönderdiği istekleri yerine getirebilmesi için RBAC’in etkin olduğu sistemlerde bir servis hesabına ihtiyacı olacaktır. Bu nedenle öncelikli olarak bir servis kullanıcısı oluşturulmalıdır. Aşağıda manifest dosyası ve komut satırı olmak üzere iki alternatif olarak paylaşılan servis kullanıcısı oluşturma adımı bu seçeneklerden birisi takip edilerek gerçekleştirilebilir. Her iki adımda da kolay ilerlemek adına tiller servis kullanıcısına cluster-admin rolü atanmıştır. Bu kurulum işlemlerinde bir yetki problemi yaşanmasını engelleyecektir. Öte yandan üretim ortamı kurulumlarında tiller servis kullanıcısına daha düşük yetkiler tanımlanması tavsiye edilmektedir.

Manifest Dosyası ile Kullanıcı Oluşturma

Aşağıdaki içeriği sahip, rbac-config.yaml adıyla bir bir manifest dosyası oluşturulur;

apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system

Bu manifest dosyası kullanılarak aşağıdaki komutla servis kullanıcısı oluşturulur;

kubectl create -f rbac-config.yaml

Komut Satırından Kullanıcı Oluşturma

RBAC etkin sistemlerde Tiller için ihtiyaç duyulan Kubernetes servis kullanıcı manifest’e alternatif olarak aşağıdaki şekilde komut satırından da oluşturulabilir;

kubectl -n kube-system create serviceaccount tiller

Oluşturulan servis kullanıcısına cluster-admin rolü verilir;

kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller

Kurulum Dosyalarının İndirilmesi

Kurulum için gerekli dosyaları indirmek için güncel Helm sürümünün bulunması gerekli. Bunun için github deposuna gidilebileceği gibi aşağıdaki komut yardımıyla komut satırından tespit edilerek HELM_RELEASE değişkenine bu değer atanabilir;

export HELM_RELEASE=$(curl -s https://api.github.com/repos/helm/helm/releases/latest | grep tag_name | cut -d '"' -f 4)

Güncel sürümün tespit edilmesi ardından aşağıdaki komut yardımıyla gerekli dosyalar yerele indirilebilir;

curl https://get.helm.sh/helm-$HELM_RELEASE-linux-amd64.tar.gz -o helm-$HELM_RELEASE-linux-amd64.tar.gz

İndirilen dosya aşağıdaki komut yardımıyla dosya ayıklanır;

tar -zxvf helm-$HELM_RELEASE-linux-amd64.tar.gz

Helm Kurulumu

Önceki adımda ayıklanan heml dosyası /usr/local/bin/ klasörü altına kopyalanır;

mv linux-amd64/helm /usr/local/bin/helm

Tiller Kurulumu

Helm kurulumu ardından makalenin başında oluşturduğumu servis kullanıcısı da kullanılarak aşağıdaki komutla tiller kurulumu gerçekleştirilir;

helm init --service-account tiller

Kurulum Doğrulama

Bu adımlar ardından tamamlanan kurulum işlemi aşağıdaki komut yardımıyla teyit edilebilir;

kubectl get pods --namespace kube-system

kubectl-get-pods-kube-system

Gelen pod listesinde tiller-deploy pod’u running durumunda görülmelidir. Son olarak; aşağıdaki komut çalıştırıldığında hem istemci hem de sunucu sürümü gelecektir;

helm version

helm-version

Kurulumun tamamlanması ardından Helm Hub üzerinden helm chart arayarak kurulumunu yapabilirsiniz.

Fatih Boy

Ankara'da yaşayan Fatih, kendi şirketinde özellikle bankacılık, sigortacılık ve otomotiv sektörlerinde IT danışmanlıkları vermektedir. Devops, ALM süreçleri, kurumsal veri yolu sistemleri, kurumsal altyapı ve yazılım geliştirme konularında destek vermektedir. Boş zamanlarında açık kaynak kodlu projeler geliştirmeyi ve bilgisini yazdığı makalelerle paylaşmayı seven Fatih, aynı zamanda Visual C# ve Visual Studio teknolojileri konusundan Microsoft tarafından altı yıl üst üste MVP (En Değerli Profesyonel) ödülüne layık görülmüştür. İş hayatı boyunca masaüstü uygulamaları, web teknolojileri, akıllı istemciler gibi konularda Asp.Net, Php, C#, Java programlama dilleri ve MySql, MsSql ve Oracle gibi veritabanı yönetim yazılımları ile çalışmıştır. İngilizce ve Türkçe olarak yayınlanan makalelerini gerek İngilizce bloğunda, gerekse de Türkçe bloğunda bulabileceğiniz gibi web sitesinden de açık kaynak kodlu geliştirdiği yazılımlarına ulaşabilirsiniz. vCard - Twitter - Facebook

1 Yorum

  1. Pingback: Kubernetes Üzerinde Docker Registry Kurulumu - Fatih'in Notları

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.