Hướng dẫn cài đặt và sử dụng ChartMuseum hỗ trợ việc custom chart với helm (k8s)

Những năm gần đây Devops ngày càng được ưa chuộng bởi Developer, những khái niệm docker, docker swarm, kubernetes không còn quá lạ lẫm nữa. Bản thân mình cũng vậy, mình áp dụng docker swarm cho dự án của mình từ khá sớm. Tuy nhiên trong qúa trình sử dụng, mình nhận thấy rằng Docker

Những năm gần đây Devops ngày càng được ưa chuộng bởi Developer, những khái niệm docker, docker swarm, kubernetes không còn quá lạ lẫm nữa. Bản thân mình cũng vậy, mình áp dụng docker swarm cho dự án của mình từ khá sớm. Tuy nhiên trong qúa trình sử dụng, mình nhận thấy rằng Docker Swarm có khả năng chịu lỗi hạn chế. Trong Docker Swarm, các service có thể phải thay đổi quy mô thủ công, không tự động, khi mình muốn thay đổi service lại phải vào docker-stack.yaml viết lại file rồi deploy lại khá mất công và nếu mình không cẩn thận sai sót trong lúc sửa file cũng khiến ứng dụng của mình bị “tèo”. Mình đã có bài học nhớ đời là file docker-stack.yaml mình sửa lỗi mà không biết khiến ứng dụng bị down mà không biết. Ngoài ra, cộng đồng Kubernetes khá là lớn với các dự án siêu to sử dụng nên mình có chuyển kiến trúc dự án sang Kubernetes (k8s)

Nếu bạn đã, đang sử dụng Kubernetes thì helm là một công cụ rất cần thiết. Helm là một package manager dành cho Kubernetes. Helm giúp chúng ta quản lý resource trong k8s hay nói chính xác là quản lý các Chart Repository.

1. Cài đặt helm

Để cài đặt helm bạn chạy các lệnh sau đây (Debian/Ubuntu) nhé 😃

curl https://baltocdn.com/helm/signing.asc |sudo apt-key add -
sudoapt-getinstall apt-transport-https --yes
echo"deb https://baltocdn.com/helm/stable/debian/ all main"|sudotee /etc/apt/sources.list.d/helm-stable-debian.list
sudoapt-get update
sudoapt-getinstall helm

Bạn sử dụng các os khác tham khảo: Installation helm

Sau khi cài xong helm bạn kiểm tra xem máy của bạn đã có helm chưa nhé:

$ helm --help
The Kubernetes package manager

Common actions for Helm:

- helm search:    search for charts
- helm pull:      download a chart to your local directory to view
- helm install:   upload the chart to Kubernetes
- helm list:      list releases of charts

Tiếp theo thử tạo một Chart xem sao nhỉ =))

$ helm create chart-test

Và helm đã giúp chúng ta tạo một template chart như này

Và giờ chúng ta triển khai ứng dụng thêm các services,… và deploy chart lên k8s thôi =)) easy game đúng không.

Sử dụng Chartmuseum để custom chart

Bài toán đặt ra ở đây là ở dưới local sau khi mình thêm các services, config trong chart repo cho ứng dụng thì mình sẽ test nó như thế nào. Plugin Chartmuseum sẽ là một giải pháp giúp bạn làm “chuyện ấy” được hiệu quả

1. Cài đặt Chartmuseum

Để cài đặt plugin Chartmuseum dưới máy bạn chỉ cần gõ:

# on Linuxcurl -LO https://s3.amazonaws.com/chartmuseum/release/latest/bin/linux/amd64/chartmuseum

# on macOScurl -LO https://s3.amazonaws.com/chartmuseum/release/latest/bin/darwin/amd64/chartmuseum

# on Windowscurl -LO https://s3.amazonaws.com/chartmuseum/release/latest/bin/windows/amd64/chartmuseum

chmod +x ./chartmuseum
mv ./chartmuseum /usr/local/bin

2. Chạy Chartmuseum dưới local

Bạn chạy dưới local với lệnh sau

chartmuseum --port=8080 --storage="local" --storage-local-rootdir="/home/nguyen.van.quyb/Desktop/chart-test"

Vào sau đó bạn sẽ chartmuseum sẽ chạy dưới local với port:8080. Lưu ý trong suốt quá trình coding thì giữ nguyên cửa sổ này nhé, nếu không sẽ không có api để bạn dùng ở phía dưới đâu

chartmuseum --port=8080 --storage="local" --storage-local-rootdir="/home/nguyen.van.quyb/Desktop/chart-test"2021-07-14T22:13:29.827+0700	INFO	Starting ChartMuseum	{"port":8080}

Một số API mà bạn có thể sử dụng:

  • POST /api/charts – tải lên một chart version mới

  • POST /api/prov – tải lên một tệp nguồn mới

  • DELETE /api/charts/<name>/<version> – xóa một chart version (và tệp nguồn tương ứng)

  • GET /api/charts – Danh sách tất cả các chart

  • GET /api/charts/<name> – Danh sách tất cả các version của chart

  • GET /api/charts/<name>/<version> – một tả một chart version

  • HEAD /api/charts/<name> – kiểm tra nếu chart tồn tại (bất kỳ version nào)

  • HEAD /api/charts/<name>/<version> – kiểm tra nếu chart version tồn tại

3. Cài đặt Charts cho Kubernetes

  • Thêm URL của Chartmuseum vào danh sách local repository:
$ helm repo add chartmuseum http://localhost:8080
  • Push chart repo chúng ta vừa tạo ở trên vào chartmuseum:
$ helm push chart-test/ chartmuseum
  • Sau khi push chart vào chartmuseum nhớ update lại repo nhé
$ helm repo update
  • Tìm kiếm các chart đã được add vào chartmuseum:
$ helm search repo chartmuseum/
NAME                 	CHART VERSION	APP VERSION	DESCRIPTION                     
chartmuseum/chart-test	0.0.1        	           	ahihi.
  • Cài đặt chart
$ helm install chartmuseum/chart-test --generate-name
  • Kiểm tra các chart đã được cài đặt trên k8s
NAME      	NAMESPACE 	REVISION	UPDATED                                	STATUS  	CHART           	APP VERSION
chart-test	chart-test	1      	2021-07-14 22:50:27.505546235 +0000 UTC	deployed	chart-test-0.0.1	

Ok vậy là chúng ta đã deploy được chart với helm sử dụng Chartmuseum để lưu trữ chart phía local. Sau đó khi bạn muốn sửa nội dung của chart bạn dùng helm push lại vào chartmuseum, và dùng helm upgrade để upgrade lại chart cho k8s.

Nguồn: viblo.asia

Bài viết liên quan

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ