- vừa được xem lúc

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

0 1 65

Người đăng: Nguyễn Văn Quy

Theo Viblo Asia

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 -
sudo apt-get install apt-transport-https --yes
echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install 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 Linux
curl -LO https://s3.amazonaws.com/chartmuseum/release/latest/bin/linux/amd64/chartmuseum # on macOS
curl -LO https://s3.amazonaws.com/chartmuseum/release/latest/bin/darwin/amd64/chartmuseum # on Windows
curl -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.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Deploying A Containerized Web Application On Kubernetes

1. Overview. Kubernetes is an open source project (available on kubernetes.io) which can run on many different environments, from laptops to high-availability multi-node clusters; from public clouds to on-premise deployments; from virtual machines to bare metal.

0 0 55

- vừa được xem lúc

Kubernetes - Học cách sử dụng Kubernetes Namespace cơ bản

Namespace trong Kubernetes là gì. Tại sao nên sử dụng namespace.

0 0 113

- vừa được xem lúc

[Kubernetes] Kubectl và các command cơ bản

Mở đầu. Kubectl là công cụ quản trị Kubernetes thông qua giao diện dòng lệnh, cho phép bạn thực thi các câu lệnh trong Kubernetes cluster.

0 0 59

- vừa được xem lúc

Triển khai EFK Stack trên Kubernetes

EFK stack on K8S. Giới thiệu. Một hệ thống có thể chạy nhiều dịch vụ hoặc ứng dụng khác nhau, vì vậy việc. theo dõi hệ thống là vô cùng cần thiết.

0 0 72

- vừa được xem lúc

Thực hành Kubernetes (K8S) bằng cách sử dụng lệnh Command

Bài hướng dẫn hôm nay sẽ hướng dẫn sử dụng K8S bằng cách sử dụng câu lệnh thay vì UI trên web. Có 2 lựa chọn để thực hiện:. . Sử dụng Cloud Shell.

0 0 56

- vừa được xem lúc

Kubernetes best practices - Liveness và Readiness Health checks

Mở đầu. Kubernetes cung cấp cho bạn một framework để chạy các hệ phân tán một cách mạnh mẽ.

0 0 49