helm
Bir k8s uygulama kümesinin (deployment, service, configmap, secrets, ingress … birlikte) kolayca yönetilebilmesi ve bir bütün olarak taşınabilmesi için üretilmiş bir yapılandırma paket yönetimidir.
# Script olarak kurulum, istenirse dağıtımların depolarından da kurulabilir.
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
helm version --short
helm repo add stable https://kubernetes-charts.storage.googleapis.com/
# helm aktif durumunu çevresel değişken olarak saklar.
helm env
Helm komutu varsayılan olarak kubectl yapılandırmasını kullanır.
# helm repoları görelim.
helm repo list
# redis hub sunan helm chars listesi
helm search hub redis
# redis sunan repositoryler.
helm search repo redis
# redis chart tanımı
helm show chart stable/redis
# redis readme dosyası
helm show readme stable/redis
helm install <kurulum_adi> stable/postgresql
Helm ile kendi chartlarımızı oluşturmak
Bir chart, values.yaml dosyası içerisinde tanımlanmış değerler için bir templateler bütünüdür. Bu dosyaya değerler atanarak templateler güncellenir.
helm create ilk-app
Bunun sonucunda aşağıdaki dizin oluşur ve tüm olası template alanları oluşturulur.
tree ilk-app
ilk-app
├── charts
├── Chart.yaml
├── templates
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── hpa.yaml
│ ├── ingress.yaml
│ ├── NOTES.txt
│ ├── serviceaccount.yaml
│ ├── service.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml
3 directories, 10 files
cat ilk-app/Chart.yaml | grep -v "^#"
apiVersion: v2
name: ilk-app
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: 1.16.0
spec:
replicas: {{ .Values.replicaCount }}
#values.yaml içerisinde tanımlanır.
replicaCount: 3
Ayrıca komut satırın bu değer aşağıdaki gibi de girilebilir.
... --set replicaCount=3
values.yaml dosyasında neler var görmek için
#helm char dizininde
helm inspect values .
# Birden çok values dosyası kullanabilirsiniz. Sonra gelen önceliklidir.
helm install -f myvalues.yaml -f override.yaml myredis ./redis
Kaynaklar
- https://helm.sh/
- https://helm.sh/docs/chart_best_practices/
- https://www.youtube.com/watch?v=3GPpm2nZb2s