17 Mart 2022 Perşembe

Helm Kullanımı

Giriş
Özet
1. Önce bir chart oluştururuz. Bunun için helm create komutu kullanılır. Şöyle yaparız. Detay için helm create yazısına bakabilirsiniz.
> helm create  demo-chart
2. Daha sonra değişkenler düzenlenir. 
3. Install işleminden önce "helm template ..." ile üretilen yaml dosyasında hata olup olmadığı kontrol edilir
4. helm install seçeneği ile proje kurulur
5. helm list ile tüm kurulumların veya helm status ile belirtilen kurulumun durumuna bakılır
6. Eğer geri almak istersek helm rollback kullanılır
7. helm upgrade ile proje güncellenir
8. helm uninstall ile proje kaldırılır


How Helm is connecting to Kubernetes Cluster?
Açıklaması şöyle
Helm uses the default kubeconfig location to connect with the Kubernetes cluster. If you want to connect any other cluster for which kubeconfig is placed on another location then you need to update the following env variable
$KUBECONFIG   (default "~/.kube/config")
apart from this variable, there are other variables as well. Please visit the documentation.
Şöyle yaparız
export KUBECONFIG=/home/id_rsa_ucd_common/okd4/foo/auth/kubeconfig

Detaylar
1. Değişkenler values.yaml dosyasına eklenir. templates dizinindeki dosyalar values.yaml dosyasındaki varsayılan değerleri kullanır. Eğer bazı değerleri values.yaml içinde vermek istemezsek veya ezmek istersek komut satırından da --set ile verilebilir. Şöyle yaparız
helm install sample-service ./sample-service --generate-name 
  --set service.type=NodePort 
  --set service.nodePort=31234

Helm Söz Dizimi

Örnek
Değişkenini değerine erişmek için şöyle yaparız. Yani iki tane süslü parantez arasında kullanılır
 {{ $.Values.myvariable }}
If
Helm - Flow Control If/Else yazısına taşıdım

with
Modifying Scope Using “with” yazısına taşıdım

range
range yazısına taşıdım

Döngü
Örnek
Şöyle yaparız. {{ toYaml ($.Values.vtgate.resources) | indent 10 }} ile values.yaml dosyasındaki blok aynen kopyalanır
{{ range $cell := $.Values.availabilityZones }}
    - name: {{ $cell }}
      gateway:
        authentication:
          static:
            secret:
              name: {{ $.Values.keyspaceName }}
              key: users.json
        replicas: {{ $.Values.vtgate.replicas }}
        extraFlags:
          mysql_server_version: "8.0.13-Vitess"
        resources:
{{ toYaml ($.Values.vtgate.resources) | indent 10 }}

{{end}}
Örnek
Şöyle yaparız. Burada $. ile başlamıyor. Üzerinde yürünen blok için bilgi çekiliyor.
{{- range .Values.proc.imgw }}
{{- if and (not .podSpecific) (eq .protocol "TCP") }}
    - name: {{ .name }}
      protocol: {{ .protocol }}
      port: {{ .containerPort }}
      nodePort: {{ add $root.Values.farm_offset .nodePort }}
      targetPort: {{ .containerPort }}
{{- end }}
values.yaml şöyledir
proc:
  ...
  imgw:
    - containerPort: 12340
      name: rlwy-proc-imgw1
      protocol: TCP
      nodePort: 30092
    - containerPort: 12341
      name: rlwy-proc-imgw2
      protocol: TCP
      nodePort: 30093
    - containerPort: 12342
      name: rlwy-proc-imgw3
      protocol: TCP
      nodePort: 30094
    - containerPort: 12343
      name: rlwy-proc-imgw4
      protocol: TCP
      nodePort: 30095


Hiç yorum yok:

Yorum Gönder

Cluster Propotional Autoscaler - ReplicaSet Ekler/Siler

Giriş Açıklaması şöyle CPA aims to horizontally scale the number of Pod replicas based on the cluster’s scale. A common example is DNS ser...