Sử dụng Helm Chart

Tram Ho

Cài đặt:

#Bash Complete for helm

P1: Làm quen Helm Chart

1.1 Tải helm chart từ ArtifactHub

https://artifacthub.io/ chứa rất nhiều helm được chia sẻ từ cộng đồng.

1.2 Run helm chart

1.3 Test Chart

Ta có 3 cách kiểm tra config helm đã đúng chưa:

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

1.5 Liệt kê chart nào đang chạy

P2: Tự tạo Helm Chart

2.1 Tạo self chart

2.2 Upgrade Chart

Nếu Chart yaml có update (ví dụ thêm biến ở configmap, thay đổi image deployment), ta chạy như sau:

2.3 Rollback Chart

P3: .Values / .Chart

Để chuẩn bị cho các bài test từ phần 3,4… trở đi, ta thực hiện xóa vài thư mục sau

VD1: Load tham số .Values từ values.yaml

B1: Chuẩn bị values.yaml

B2: Sửa deployment.yaml

B3: Kết quả

Replicas đã được ghi đè từ 2 lên 5 khi chạy helm template (hoặc install/upgrade)

VD2: Load tham số .Chart từ Chart.yaml

B1: values.yaml

B2: Sửa deployment.yaml

B3: Kết quả

Ngoài ra, ta còn có một số Values, chart build-in có sẵn hay sử dụng:

P4: Function và Pipeline

Các Function helm ta có thể tìm ở đây: https://helm.sh/docs/chart_template_guide/function_list/#string-functions

VD1: Function

B1: Sửa file values.yaml và Chart.yaml

B2: Sửa deployment.yaml. Áp dụng function: upper, title, replace, camelcase…

B3: Kết quả

VD2: Pipeline

Pipeline có kêt quả tương tự như function, ta có thể xem ví dụ dưới đây về upper, title, replace, camelcase…

Kết quả:

Phần 5: IF

Chức năng: (1) so sánh, (2) Nếu exist sẽ in ra

VD1: Kiểm tra tồn tại bằng if

B1: File values.yaml

B2: Sửa deployment.yaml

B3: Kết quả

VD2: Các ví dụ so sánh về IF

P6: With

Chức năng:

  • Dùng để rút gọn Chart.
  • Kiểm tra tồn tại nếu có thì insert., nếu ko có thì xóa (giống IF).
  • Dùng để load 1 list string vào trong Chart.

VD1: Rút gọn Chart

B1: File values.yaml

B2: File configmap.yaml khi chưa sửa

B3: Sửa configmap.yaml rút gọn “.Values.app.” đưa vào with

B4: Kết quả

VD2: kiểm tra tồn tại nếu có thì insert., nếu ko có thì xóa (giống IF)

B1: File values.yaml

B2: Sửa deployment.yaml

B3: Kết quả

P7: Range (for i)

Range gần giống như with để load values ra, nhưng sử dụng cho array values. Ta có thể xem ví dụ sau

VD1: Range sử dụng để fill array list

B1: File values.yaml

B2: Sửa deployment.yaml

B3: Kết quả

VD2: Range with multi values

B1: File values.yaml

B2: Sửa deployment.yaml

B3: Kết quả

VD3: Range without $val

B1: File values.yaml

B2: Sửa deployment.yaml

B3: Kết quả

P8: Include/Template

B1: File _helper.tpl

B2: Trong deployment.yaml có gọi include

B3: Kết quả

P9: Print function

B1: File values.yaml

B2: Sửa configmap.yaml

B3: Kết quả

P10: Default

B1: File values.yaml

B2: Sửa deployment.yaml

B3: Kết quả

P11: Đẩy Helm Chart lên ArtifactHub hoặc Local registry

(updating…)

Bài viết trong phạm vi kiến thức của người viết, có thể các bạn có idea hay hơn, xin hướng dẫn. Cảm ơn!

 

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo