Cách Cài Đặt Phần Mềm Trên Cụm Kubernetes Chi Tiết Nhất 2025

Cách Cài Đặt Phần Mềm Trên Cụm Kubernetes Chi Tiết Nhất 2025

Trong bài viết này, chúng ta sẽ tìm hiểu cách cài đặt, cấu hình, rollback (quay lại phiên bản trước) và xóa ứng dụng Kubernetes Dashboard bằng Helm – công cụ quản lý gói mạnh mẽ dành cho Kubernetes. Kubernetes Dashboard là giao diện web chính thức, giúp quản trị viên dễ dàng giám sát và quản lý các tài nguyên trong cụm Kubernetes.

Bạn đang tìm hiểu cách cài đặt phần mềm trên cụm Kubernetes? Để triển khai hiệu quả, một VPS giá rẻ chất lượng là lựa chọn tối ưu. Với chi phí thấp, VPS giúp bạn xây dựng môi trường Kubernetes ổn định, tiết kiệm tài nguyên mà vẫn đảm bảo hiệu suất cao.

Trước khi bắt đầu, nếu bạn muốn hiểu rõ hơn về Helm và hệ sinh thái đóng gói của nó, hãy tham khảo bài viết Giới thiệu về Helm.

Ngoài ra, nếu bạn đang tìm kiếm một dịch vụ Kubernetes được quản lý, hãy khám phá nền tảng Kubernetes đơn giản, tối ưu của DataOnline, giúp bạn triển khai và vận hành ứng dụng một cách dễ dàng, đảm bảo hiệu suất và khả năng mở rộng linh hoạt.

Lưu ý: Hướng dẫn này đề cập đến quy trình cài đặt phần mềm trên các cụm Kubernetes sử dụng phiên bản 2 của trình quản lý gói Helm, phiên bản này yêu cầu có Tiller. Nếu bạn đang làm việc với phiên bản 3 của Helm, hãy xem hướng dẫn Cách Cài Đặt Phần Mềm trên Cụm Kubernetes với Trình Quản Lý Gói Helm 3

Yêu cầu tiên quyết

Để thực hiện hướng dẫn này, bạn cần:

● Một cụm Kubernetes phiên bản 1.8 trở lên, đã bật tính năng kiểm soát truy cập theo vai trò (RBAC).
● Công cụ dòng lệnh kubectl đã được cài đặt trên máy tính cá nhân của bạn và được cấu hình để kết nối đến cụm của bạn. Bạn có thể đọc thêm về cách cài đặt kubectl trong tài liệu chính thức.

Bạn có thể kiểm tra kết nối với cụm của mình bằng lệnh:

kubectl cluster-info

● Nếu không có lỗi, bạn đã kết nối thành công với cụm. Nếu bạn truy cập nhiều cụm với kubectl, hãy chắc chắn rằng bạn đã chọn đúng context cụm bằng lệnh:

kubectl config get-contexts
Output
CURRENT   NAME                    CLUSTER                      AUTHINFO                      NAMESPACE
*         do-nyc1-k8s-example     do-nyc1-k8s-example          do-nyc1-k8s-example-admin
          docker-for-desktop      docker-for-desktop-cluster   docker-for-desktop

Trong ví dụ này, dấu * cho biết rằng bạn đang kết nối đến cụm do-nyc1-k8s-example. Để chuyển đổi cụm, sử dụng lệnh:

kubectl config use-context context-name

Khi bạn đã kết nối đến cụm chính xác, hãy chuyển sang Bước 1 để bắt đầu cài đặt Helm.

Bước 1 – Cài Đặt Helm

Trước tiên, chúng ta sẽ cài đặt tiện ích dòng lệnh helm trên máy tính cá nhân. Helm cung cấp một script hỗ trợ quá trình cài đặt trên MacOS, Windows hoặc Linux.

Chuyển đến một thư mục có quyền ghi và tải script từ kho GitHub của Helm:

cd /tmp
curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get > install-helm.sh

Cho phép script có thể thực thi bằng lệnh chmod:

chmod u+x install-helm.sh

Tại thời điểm này, bạn có thể dùng trình soạn thảo văn bản yêu thích để mở script và kiểm tra nội dung nhằm đảm bảo an toàn. Khi đã hài lòng, chạy script:

./install-helm.sh

Bạn có thể được yêu cầu nhập mật khẩu. Hãy nhập mật khẩu và nhấn ENTER.

Output
helm installed into /usr/local/bin/helm
Run 'helm init' to configure helm.

Tiếp theo, chúng ta sẽ hoàn tất cài đặt bằng cách cài đặt một số thành phần của Helm trên cụm của chúng ta.

Bước 2 – Cài đặt Tiller

Tiller là một thành phần đi kèm với lệnh helm chạy trên cụm của bạn, nhận lệnh từ helm và giao tiếp trực tiếp với API Kubernetes để thực hiện các tác vụ tạo và xoá tài nguyên.

Để cấp cho Tiller các quyền cần thiết trên cụm, chúng ta sẽ tạo một resource serviceaccount của Kubernetes.

Lưu ý: Chúng ta sẽ gán serviceaccount này vào vai trò cluster-admin. Điều này sẽ cấp quyền siêu người dùng cho Tiller trên cụm và cho phép nó cài đặt tất cả các loại tài nguyên ở mọi namespace. Đây là cấu hình phù hợp cho việc khám phá Helm, nhưng bạn có thể muốn có cấu hình hạn chế hơn đối với một cụm Kubernetes sản xuất.
Vui lòng tham khảo tài liệu RBAC chính thức của Helm để biết thêm thông tin về cách thiết lập các kịch bản RBAC khác nhau cho Tiller.

Tạo serviceaccount cho Tiller:

kubectl -n kube-system create serviceaccount tiller

Gán serviceaccount tiller vào vai trò cluster-admin:

kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller

Bây giờ, chạy lệnh helm init để cài đặt Tiller trên cụm, kèm theo một số tác vụ nội bộ như tải thông tin chi tiết từ repo stable:

helm init --service-account tiller
Output
. . .

Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.

Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy.
For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation
Happy Helming!

Để xác nhận Tiller đang chạy, hãy liệt kê các pod trong namespace kube-system:

kubectl get pods --namespace kube-system
Output
NAME                                    READY     STATUS    RESTARTS   AGE
. . .
kube-dns-64f766c69c-rm9tz               3/3       Running   0          22m
kube-proxy-worker-5884                  1/1       Running   1          21m
kube-proxy-worker-5885                  1/1       Running   1          21m
kubernetes-dashboard-7dd4fc69c8-c4gwk   1/1       Running   0          22m
tiller-deploy-5c688d5f9b-lccsk          1/1       Running   0          40s

Lưu ý rằng tên pod của Tiller bắt đầu với tiền tố tiller-deploy-.

Với việc cài đặt xong cả hai thành phần của Helm, chúng ta đã sẵn sàng sử dụng helm để cài đặt ứng dụng đầu tiên.

Bước 3 – Cài đặt Helm Chart

Các gói phần mềm của Helm được gọi là chart. Helm được cấu hình sẵn với một kho chart được tuyển chọn có tên là stable. Bạn có thể duyệt các chart có sẵn trong repo GitHub của chúng.

Trong ví dụ này, chúng ta sẽ cài đặt Kubernetes Dashboard.

Sử dụng helm để cài đặt gói kubernetes-dashboard từ repo stable:

helm install stable/kubernetes-dashboard --name dashboard-demo
Output
NAME:   dashboard-demo
LAST DEPLOYED: Wed Aug  8 20:11:07 2018
NAMESPACE: default
STATUS: DEPLOYED

. . .

Lưu ý dòng NAME được làm nổi bật trong kết quả trên. Ở đây, chúng ta đã chỉ định tên là dashboard-demo. Đây là tên của bản phát hành (release) của chúng ta. Một bản phát hành Helm là một lần triển khai duy nhất của một chart với một cấu hình cụ thể. Bạn có thể triển khai nhiều bản phát hành của cùng một chart, mỗi bản với cấu hình riêng.

Lưu ý dòng NAME được làm nổi bật trong đầu ra ví dụ ở trên. Trong trường hợp này, chúng ta đã chỉ định tên là dashboard-demo. Đây chính là tên của bản phát hành (release) của chúng ta. Một bản phát hành Helm là một lần triển khai duy nhất của một chart với một cấu hình cụ thể. Bạn có thể triển khai nhiều bản phát hành của cùng một chart, mỗi bản có cấu hình riêng.

Nếu bạn không chỉ định tên bản phát hành của mình bằng tùy chọn --name, Helm sẽ tự động tạo một tên ngẫu nhiên cho bạn.

Chúng ta có thể yêu cầu Helm liệt kê các bản phát hành trên cụm này:

helm list
Output
NAME           	REVISION	UPDATED                 	STATUS  	CHART                     	NAMESPACE
dashboard-demo	1       	Wed Aug  8 20:11:11 2018	DEPLOYED	kubernetes-dashboard-0.7.1	default

Chúng ta có thể sử dụng kubectl để xác nhận rằng một dịch vụ mới đã được triển khai trên cụm:

kubectl get services
Output
NAME                                   TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
dashboard-demo-kubernetes-dashboard   ClusterIP   10.32.104.73   <none>        443/TCP   51s
kubernetes                             ClusterIP   10.32.0.1      <none>        443/TCP   34m

Lưu ý rằng theo mặc định, tên dịch vụ tương ứng với bản phát hành của chúng ta là sự kết hợp của tên release và tên chart.

Với việc ứng dụng đã được triển khai, hãy chuyển sang dùng Helm để thay đổi cấu hình và cập nhật việc triển khai.

Bước 4 – Cập nhật một bản phát hành

Lệnh helm upgrade có thể được dùng để nâng cấp một bản phát hành bằng chart mới hoặc cập nhật các tùy chọn cấu hình của nó.

Chúng ta sẽ thực hiện một thay đổi đơn giản cho bản phát hành dashboard-demo nhằm minh họa quá trình cập nhật và quay lại (rollback): thay đổi tên của dịch vụ dashboard từ dashboard-demo-kubernetes-dashboard thành chỉ dashboard.

Chart kubernetes-dashboard cung cấp tùy chọn cấu hình fullnameOverride để điều khiển tên dịch vụ. Hãy chạy lệnh helm upgrade với tùy chọn này:

helm upgrade dashboard-demo stable/kubernetes-dashboard --set fullnameOverride="dashboard"

Bạn sẽ thấy đầu ra tương tự như bước cài đặt ban đầu.

Kiểm tra xem các dịch vụ trên Kubernetes đã phản ánh giá trị cập nhật hay chưa bằng lệnh:

kubectl get services
Output
NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
kubernetes             ClusterIP   10.32.0.1       <none>        443/TCP   36m
dashboard              ClusterIP   10.32.198.148   <none>        443/TCP   40s

Tên dịch vụ đã được cập nhật thành giá trị mới.

Lưu ý: Tại thời điểm này, bạn có thể muốn mở Kubernetes Dashboard trên trình duyệt và kiểm tra. Để thực hiện, chạy lệnh sau:

kubectl proxy

Lệnh này tạo một proxy cho phép bạn truy cập tài nguyên cụm từ máy tính cá nhân. Dựa theo hướng dẫn trước, dịch vụ dashboard của bạn có tên là kubernetes-dashboard và đang chạy trong namespace mặc định. Bạn có thể truy cập dashboard tại:

http://localhost:8001/api/v1/namespaces/default/services/https:dashboard:/proxy/

Nếu cần, hãy thay thế tên dịch vụ và namespace cho phù hợp với cấu hình của bạn.

Tiếp theo, chúng ta sẽ xem khả năng quay lại (rollback) của Helm.

Bước 5 – Quay lại một bản phát hành

Khi chúng ta cập nhật bản phát hành dashboard-demo ở bước trước, một phiên bản (revision) mới đã được tạo ra. Helm lưu lại tất cả các chi tiết của các bản phát hành trước đó để có thể quay lại nếu cần.

Sử dụng lệnh helm list để kiểm tra lại bản phát hành:

helm list
Output
NAME           	REVISION	UPDATED                 	STATUS  	CHART                     	NAMESPACE
dashboard-demo	2       	Wed Aug  8 20:13:15 2018	DEPLOYED	kubernetes-dashboard-0.7.1	default

Cột REVISION cho biết bây giờ đây là bản phát hành thứ hai.

Sử dụng lệnh helm rollback để quay lại phiên bản đầu tiên:

helm rollback dashboard-demo 1

Bạn sẽ thấy đầu ra như sau, cho biết quá trình quay lại đã thành công:

Output
Rollback was a success! Happy Helming!

Nếu bạn chạy lại lệnh kubectl get services, bạn sẽ nhận thấy tên dịch vụ đã chuyển trở lại giá trị ban đầu. Helm đã triển khai lại ứng dụng với cấu hình của phiên bản 1.

Tiếp theo, chúng ta sẽ tìm hiểu cách xoá bản phát hành với Helm.

Bước 6 – Xoá một bản phát hành

Các bản phát hành của Helm có thể bị xoá bằng lệnh helm delete:

helm delete dashboard-demo
Output
release "dashboard-demo" deleted

Mặc dù bản phát hành đã bị xoá và ứng dụng dashboard không còn chạy, Helm vẫn lưu giữ thông tin các phiên bản cũ nếu bạn muốn triển khai lại. Nếu bạn cố gắng cài đặt một bản phát hành mới có tên dashboard-demo ngay lập tức, bạn sẽ gặp lỗi:

Error: a release named dashboard-demo already exists.

Nếu bạn sử dụng cờ –deleted để liệt kê các bản phát hành đã xoá, bạn sẽ thấy rằng bản phát hành vẫn tồn tại:

helm list --deleted
Output
NAME           	REVISION	UPDATED                 	STATUS 	CHART                     	NAMESPACE
dashboard-demo	3       	Wed Aug  8 20:15:21 2018	DELETED	kubernetes-dashboard-0.7.1	default

Để xoá hoàn toàn bản phát hành và xóa sạch các phiên bản cũ, sử dụng cờ --purge với lệnh helm delete:

helm delete dashboard-demo --purge

Bây giờ bản phát hành đã được xoá hoàn toàn và bạn có thể sử dụng lại tên bản phát hành này.

Kết luận

Qua hướng dẫn này, bạn đã nắm vững cách cài đặt và sử dụng Helm – công cụ quản lý gói mạnh mẽ dành cho Kubernetes. Chúng ta đã thiết lập thành công tiện ích dòng lệnh Helm cùng với Tiller, thành phần quan trọng giúp giao tiếp với cụm Kubernetes.

Bên cạnh đó, bạn đã tìm hiểu cách cài đặt, nâng cấp, quay lại phiên bản trước và xóa các Helm chart, cũng như cách quản lý các bản phát hành trong Kubernetes một cách hiệu quả. Những kỹ thuật này giúp bạn dễ dàng triển khai và duy trì các ứng dụng phức tạp trên Kubernetes, giảm thiểu lỗi cấu hình và tiết kiệm thời gian trong quá trình vận hành.

Khi cài đặt phần mềm trên Kubernetes, việc chọn máy chủ phù hợp rất quan trọng. Thuê VPS với cấu hình mạnh mẽ, băng thông cao sẽ hỗ trợ cụm Kubernetes hoạt động mượt mà. Dịch vụ VPS linh hoạt giúp bạn dễ dàng mở rộng tài nguyên theo nhu cầu.

Với Helm, bạn có thể nhanh chóng áp dụng các bản cập nhật, rollback khi cần thiết và đảm bảo tính linh hoạt trong môi trường Kubernetes. Tiếp theo, bạn có thể khám phá thêm cách tạo Helm chart tùy chỉnh, tích hợp CI/CD với Helm hoặc triển khai các ứng dụng quy mô lớn một cách tự động hóa.Để biết thêm thông tin về Helm và các chart của Helm, vui lòng xem tài liệu chính thức của Helm.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *