DevOps Kubernetes

Hướng dẫn tạo Helm

congdonglinux-huong-dan-tao-helm
Helml

Tổng Quan về Helm

Helm chart là một trong những “best practice” trong việc xây dựng Cluster Kuberntes. Nó dùng để đóng gói những thành phần, những tài nguyên cần thiết trong quá trình xây dựng một ứng dụng chạy trên nền tảng Kubernetes. Giúp việc cài đặt service, ứng dụng trên K8s trở nên dễ dàng hơn. 

Helm chart sử dụng một template sẵn có để triển khai ứng dụng. Template này cung cấp các cấu trúc phù hợp với bất kỳ loại ứng dụng nào. 

Trong bài này, chúng ta sẽ tiếp cận từng bước để tạo và triển khai một Helm chart trên kuberntes.

Chuẩn bị

Lưu ý: Để kiểm tra xem Helm đã được cài đặt chưa, ta chạy câu lệnh which helm trên terminal. Output sẽ cho ta thấy đường dẫn đến thư mục Helm.

Tạo Helm Chart

Việc tạo Helm chart bao gồm việc cấu hình image docker, chỉ định các tham số cần thiết trong file values.yaml .

Bước 1: Tạo một Helm Chart mới

1. Để tạo mới Helm chart, ta sử dụng: 

helm create <chart name>

Ví dụ: 

helm create phoenixnap

congdonglinux.com-huong-dan-tao-helm-2

2. Sử dụng câu lệnh “ls” , để xem cấu trúc: 

ls <chart name>

congdonglinux.com-huong-dan-tao-helm-3

Trong thư mục của Helm vừa tạo sẽ có các thành phần sau: 

  • Thư mục charts – Được dùng để thêm các thành phần phụ thuộc. Mặc định nó sẽ trống. 
  • Thư mục templates – Nơi chứa các file cấu hình dùng để deploy cluster. 
  • YAML file – Dùng để định nghĩa các thông tin cấu hình trong chart.

Bước 2: Cấu hình Helm chart Image Pull Policy

1. Mở file values.yaml  với text editor. Tìm đến phần image ( Như hình ): 

congdonglinux.com-huong-dan-tao-helm-4

Có 3 thành phần mà chúng ta cần quan tâm cho giá trị của  pullPolicy:

  • IfNotPresent – Tải về bản mới nhất của image, nếu nó chưa tồn tại trong cluster. 
  • Always – Luôn luôn tải về images mới mỗi khi restart hoặc deployment.
  • Latest – Kiểm tra là tải về bản mới nhất của image. 

2. Thay đổi image pullPolicy từ IfNotPresent  Thành  Always:

congdonglinux.com-huong-dan-tao-helm-5

Bước 3: Ghi đè tên Helm Chart

Để ghi đè tên chart trong file values.yaml , ta thêm giá trị nameOverride fullnameOverride vào: 

congdonglinux.com-huong-dan-tao-helm-6

Ví dụ:

congdonglinux.com-huong-dan-tao-helm-7

Việc ghi đè tên Helm chart này đảm bảo file cấu hình cũng sẽ thay đổi theo. 

Bước 4: Chỉ định tên cho Service Account

Tên service account cho Helm được tự động tạo ra khi bạn thực thi cluster. Tuy nhiên, chúng ta có thể đặt lại tên này.

Tên của service account giúp đảm bảo ứng dụng có thể trực tiếp liên kết với một controlled user trong chart. 

1. Tìm đến giá trị serviceAccount trong file values.yaml:

congdonglinux.com-huong-dan-tao-helm-8

2. Chỉ định name  cho service account:

congdonglinux.com-huong-dan-tao-helm-9

Bước 5: Đổi Networking Service Type

Ở bước này, chúng ta sẽ sử dụng NodePort để minh họa, nếu bạn có Ingress thì có thể để “ClusterIP“, sau đó dùng Ingress trỏ vào. 

1. Để thay đổi networking service type, tìm đến giá trị service :

congdonglinux.com-huong-dan-tao-helm-10

2. Thay đổi type  từ ClusterIP  thành NodePort:

congdonglinux.com-huong-dan-tao-helm-11

Deploy Helm Chart

Sau khi cấu hình giá trị values.yaml, kiểm tra trạng thái của cluster Minikube và deploy ứng dụng bằng  Helm commands.

Bước 1: Kiểm tra trạng thái minikube

Nếu Minikube không chạy, việc cài đặt Helm sẽ báo lỗi: 

1. Kiểm tra trạng thái của Minikube: 

minikube status

Output sẽ phản hồi “Running”.

congdonglinux.com-huong-dan-tao-helm-12

2. Nếu output hiển thị Stopped, hãy start nó lên bằng lệnh: 

minikube start

congdonglinux.com-huong-dan-tao-helm-13

Sau khi quá trình start hoàn tất, status sẽ đổi sang “Running”.

Bước 2: Cài đặt Helm chart

Cài đặt Helm chart sử dụnghelm install command:

helm install <full name override> <chart name>/ --values <chart name>/values.yaml

Ví dụ: 

helm install phoenix-chart phoenixnap/ --values phoenixnap/values.yaml

congdonglinux.com-huong-dan-tao-helm-14

Câu lệnh helm installdùng để deploy app. Những bước tiếp theo sẽ in ra giá trị “NOTES” trong phần output.

Bước 3: Export Pod với NodePort và IP Address

1. Copy hai câu lệnh export  từ output của helm install

2. Chạy các câu lệnh để lấy Pod node port và địa chỉ IP: 

congdonglinux.com-huong-dan-tao-helm-15

Bước 4: Xem lại các ứng dụng đã deploy. 

1. Copy và paste câu lệnh echo  vào terminal để in ra địa chỉ IP và Port:

echo http://$NODE_IP:$NODE_PORT

congdonglinux.com-huong-dan-tao-helm-16

2. Copy đường dẫn và paste vào trình duyệt web để xem ứng dụng vừa deploy:

congdonglinux.com-huong-dan-tao-helm-17

Lưu ý: Để học cách xóa Helm deployment và namespace để lấy loại bỏ những thành phần không mong muốn hoặc nhiều bản copy của Helm deployment.

 

Cuối bài

Sau khi làm theo dàn bài từng bước một trong hướng dẫn này, bạn đã có thể tạo, thiết lập một Helm chart và triển khai nó lên web server. Helm chart mà một ứng dụng giúp đơn giản hóa việc triển khai trên Cluster Kuberntes. 

Bây giờ, bạn đã tạo được Helm chart, tiếp xem bạn có thể học cách Pull And Push Helm Charts.

Mã Bài Viết: 586749

        Nguồn:                  

congdonglinux.com

              [maxbutton id=”2″ ]                             [maxbutton id=”3″ ] 

 

Đăng ký liền tay Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !

Tags

Add Comment

Click here to post a comment

Đăng ký liền tay
Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !