Thứ Ba, 1 tháng 3, 2022

Helm command cheat Sheet

Cài đặt:

https://helm.sh/docs/intro/install/ 
curl -k -O https://get.helm.sh/helm-canary-linux-amd64.tar.gz
tar -xvzf helm-canary-linux-amd64.tar.gz
chmod 7550 linux-amd64/helm ; mv linux-amd64/helm /usr/bin/

#Bash Complete for helm

yum install bash-completion 
helm completion bash > /etc/bash_completion.d/helm

Phần 1: Làm quen

# Add Repo
helm repo add bitnami https://charts.bitnami.com/bitnami --force-update
helm repo add stable https://charts.helm.sh/stable --force-update
helm repo update
helm search repo nginx
helm repo list

Tải helm .tar.gz từ ArtifactHub

helm pull bitnami/kube-state-metrics

Chạy helm

helm install kube-state-metrics bitnami/kube-state-metrics -n tuandahelm ls -A
helm status first-chart
helm delete kube-state-metrics -n tuanda

Show thông tin của chart trên ArtifactHub

helm show chart bitnami/nginx
helm show values bitnami/nginx

Liệt kê helm đang chạy (-n là namespace)

helm ls -n tuanda
helm ls -A

Đặt thêm biến - tự chỉ định khi chạy helm

helm install nginxtest bitnami/nginx --set service.port=8888 -n tuanda

Phần 3: Helm push local registry

# export HELM_EXPERIMENTAL_OCI=1
# helm registry login -u tuanda registry.tuan.name.vn:31320
# helm registry logout registry.tuan.name.vn:31320

Đẩy .tar.gz lên local registry, sau đó test pull lại (Để ý kĩ sẽ thấy md5sum push/pull không đổi):
# helm push nginx-test.tar.gz oci://registry.tuan.name.vn:31320/helm-charts
# helm pull oci://registry.tuan.name.vn:31320/helm-charts/nginx-test




Phần 2: Tự tạo Helm

Tạo self chart

helm create first-chart

Xóa tạm thư mục templates đi. Tạo file configmap.yaml để test

apiVersion: v1
kind: ConfigMap
metadata:
  name: fortune-config
  namespace: default
data:
  sleep-interval: "25"
# Để chạy helm ta vừa sửa
helm install first-chart .
kubectl get configmaps fortune-config
kubectl describe configmaps fortune-config

Nếu Chart có thêm update ta dùng upgrade để cập nhập:

helm template first-chart . --namespace=tuanda
helm upgrade first-chart .
kubectl describe configmaps fortune-config

#Để Rolback ta làm như sauhelm history ${helm_name}helm rollback ${helm_name} 1

Nếu thêm secret trong chart như configmap

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  USER_NAME: YWRtaW4=
  PASSWORD: MWYyZDFlMmU2N2Rm
helm upgrade first-chart .

#Rollback helm release

$ helm history first-chart
REVISION	           UPDATED                 	STATUS             	CHART            	APP VERSION
1       	Wed Feb 16 17:16:00 2022	superseded	first-chart-0.1.0	1.16.0     
2       	Wed Feb 16 17:21:10 2022	superseded	first-chart-0.1.0	1.16.0     
3       	Wed Feb 16 18:01:53 2022	deployed  	first-chart-0.1.0	1.16.0     


$ helm rollback first-chart (về bản trước đó) $ helm rollback first-chart 1 (về bản chỉ định)

Phần 3: Link variable vào Chart.yaml và variable.yaml

3.1 Chart.yaml

Sửa file configmap ở phần 1:
apiVersion: v1
kind: ConfigMap
metadata:
  name: fortune-config-{{.Chart.Version}}
  namespace: default
data:
  sleep-interval: "25"
  tuanda: "ahihi2"
helm upgrade first-chart .
[tuanda@master-node first-chart]$ kubectl get configmaps 
NAME                   DATA   AGE
fortune-config-0.1.0   2      68s

3.2 Values.yaml

Sửa file:
tuanda:
  ahihi: "xin chao"

replicaCount: 1
Ta có {{.Values.tuanda.ahihi}}

3.3 Dynamic if/else in helm

tuanda@master-node first-chart]$ cat templates/secret.yaml 
apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  {{if eq .Values.env "Staging"}}
  USER_NAME: Staging
  PASSWORD: M12345G
  {{else}}
  USER_NAME: YWRtaW4=
  PASSWORD: MWYyZDFlMmU2N2Rm
  {{end}}

Thêm env: "Staging" trong file values.yaml và test
helm template first-chart .
helm upgrade first-chart .


Không có nhận xét nào:

Đăng nhận xét

Nginx mTLS

  A. Nginx as SERVER with mTLS Trong  hệ thống nội bộ, ca certificate thường dùng chung cả cho server và client. Nhưng nếu bảo mật hơn, có t...