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

Ứng cứu khi chown -R user1:user1 /etc

1. Bài toán Gõ nhầm: chown -R user1:user1 /etc 2. Giải: Cách 1: Tìm bản backup /etc cũ (tỉ lệ phục hồi gần như ~100%) Cách 2: Tìm tạm 1 thư ...