Helm

Allikas: Kuutõrvaja
Redaktsioon seisuga 22. august 2019, kell 12:20 kasutajalt Jj (arutelu | kaastöö)

Paigaldamine skriptiga suvalisele Linuxile

$ curl -LO https://git.io/get_helm.sh
$ chmod 700 get_helm.sh
$ ./get_helm.sh

Helmi failistruktuuri loomiseks

$ helm create mychart
Creating mychart

Tekkinud failistruktuur sisaldab näidet ngixi paigaldamiseks ning selle modfitseerimisest on ka hea esmalt alustada, kuna nginx on paljude helmide jaoks oluline proxy komponent.

Lisame sinna nginx confi nginx/templates/cm.yaml

apiVersion: v1
data:
  nginx.conf: |
    events {
      worker_connections  1024;
    }
    http {
      server {
        listen 80;
        location / {
          return 200 "===============================\n\n   This is your helm deploy!   \n\n===============================\n";
        }
      }
    }
kind: ConfigMap
metadata:
  name: nginx-config

Järgmisena peame selle defineerima oma rakenduse failis templates/deployment.yaml volumes ja volumemounts

     containers:
       - name: Mall:.Chart.Name
         image: "Mall:.Values.image.repository:Mall:.Values.image.tag"
         imagePullPolicy: Mall:.Values.image.pullPolicy
         ports:
           - name: http
             containerPort: 80
             protocol: TCP
         ...
         volumeMounts:
           - name: config
             mountPath: /etc/nginx/nginx.conf
             subPath: nginx.conf
     volumes:
     - name: config
       configMap:
         name: nginx-config

Soovides tekitada konteinerile püsiva volume, nt postgresi andmete hoidmiseks, tuleb tekitada presistent storage. Selleks peame esiteks teadma mis tüüpi presistent storaget kasutab meie k8s cluster ja tekitada vastavalt sellele claimi mis eraldab meile storagest soovitud suurusega jaotise. Antud näites on meil kasutuses longhorni andmesalvestuslahendus

Tekitame claimi faili templates/volume.yaml järgneva sisuga

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: longhorn-waldur-postgres-data
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: longhorn
  resources:
    requests:
      storage: 10Gi


Testimiseks kas kõik on korras saab kasutada käsku

helm template waldur

Chartide repositoorium koosneb pakitud chartidest ja index.yaml mis sisaldab kõikide chartide nimesid

helm package nginx
mv nginx-0.1.0.tgz nginx
helm repo index nginx --url http://zoo.tartu.ee/charts/nginx/

Uue versiooninumbriga paki tekitamiseks

# helm package nginx --version 1.1.1

Misjärel on tarvilik genereerida ka index uuesti

https://linchpiner.github.io/k8s-multi-container-pods.html