Thứ năm, 02/04/2020 | 00:00 GMT+7

Cách cài đặt phần mềm trên Kubernetes Cluster bằng Trình quản lý gói Helm 3

Helm là trình quản lý gói cho Kubernetes cho phép các nhà phát triển và nhà điều hành dễ dàng cấu hình và triển khai các ứng dụng trên các cụm Kubernetes.

Trong hướng dẫn này, bạn sẽ cài đặt Helm 3 và sử dụng nó để cài đặt, cấu hình lại, khôi phục và xóa một version của ứng dụng Kubernetes Dashboard . Control panel là một Kubernetes GUI chính thức dựa trên web.

Để có cái nhìn tổng quan về khái niệm Helm và hệ sinh thái đóng gói của nó, vui lòng đọc bài viết của ta , Giới thiệu về Helm .

Yêu cầu

Đối với hướng dẫn này, bạn cần :

  • Một cụm Kubernetes với kiểm soát truy cập dựa trên role (RBAC) được bật. Helm 3.1 hỗ trợ các cụm từ version 1.14 đến 1.17. Để biết thêm thông tin, hãy xem trang phát hành Helm .
  • Công cụ dòng lệnh kubectl được cài đặt trên máy local của bạn, được cấu hình để kết nối với 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 của bạn bằng lệnh sau:

    • kubectl cluster-info

    Nếu bạn không thấy lỗi, bạn đã kết nối với cụm. Nếu bạn truy cập nhiều cụm bằng kubectl , hãy đảm bảo xác minh bạn đã chọn đúng ngữ cảnh cụm:

    • kubectl config get-contexts
    Output
    CURRENT NAME CLUSTER AUTHINFO NAMESPACE * do-fra1-helm3-example do-fra1-helm3-example do-fra1-helm3-example-admin

    Trong ví dụ này, dấu hoa thị ( * ) cho biết rằng ta được kết nối với cụm do-fra1-helm3-example . Để chuyển cụm chạy:

    • kubectl config use-context context-name

Khi bạn đã kết nối với đúng cụm, hãy tiếp tục Bước 1 để bắt đầu cài đặt Helm.

Bước 1 - Cài đặt Helm

Đầu tiên, bạn sẽ cài đặt tiện ích dòng lệnh helm trên máy local của bạn . Helm cung cấp một tập lệnh xử lý quá trình cài đặt trên MacOS, Windows hoặc Linux.

Thay đổi thành folder có thể ghi và download tập lệnh từ repository GitHub của Helm:

  • cd /tmp
  • curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3

Làm cho tập lệnh có thể thực thi được với chmod :

  • chmod u+x get_helm.sh

Bạn có thể sử dụng editor yêu thích của bạn để mở tập lệnh và kiểm tra đảm bảo rằng nó an toàn. Khi thấy ổn , hãy chạy nó:

  • ./get_helm.sh

Bạn có thể được yêu cầu nhập password của bạn . Cung cấp nó và nhấn ENTER để tiếp tục.

Đầu ra sẽ như thế này:

Output
Downloading https://get.helm.sh/helm-v3.1.2-linux-amd64.tar.gz Preparing to install helm into /usr/local/bin helm installed into /usr/local/bin/helm

Đến đây bạn đã cài đặt Helm, bạn đã sẵn sàng sử dụng Helm để cài đặt biểu đồ đầu tiên của bạn .

Bước 2 - Cài đặt biểu đồ Helm

Gói phần mềm Helm được gọi là biểu đồ . Có một repository biểu đồ được quản lý được gọi là ổn định , chủ yếu bao gồm các biểu đồ phổ biến, bạn có thể thấy trong repository GitHub của họ . Helm không được cấu hình sẵn cho nó, vì vậy bạn cần thêm nó theo cách thủ công. Sau đó, làm ví dụ, bạn sẽ cài đặt Control panel Kubernetes .

Thêm repo stable bằng lệnh:

  • helm repo add stable https://kubernetes-charts.storage.googleapis.com

Đầu ra sẽ là:

Output
"stable" has been added to your repositories

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

  • helm install dashboard-demo stable/kubernetes-dashboard --set rbac.clusterAdminRole=true

Tham số --set cho phép bạn tùy chỉnh các biến biểu đồ, mà biểu đồ hiển thị cho phép bạn tùy chỉnh cấu hình của nó. Tại đây, bạn đặt biến rbac.clusterAdminRole thành true để cấp quyền truy cập Control panel Kubernetes cho toàn bộ cụm của bạn.

Đầu ra sẽ giống như sau:

Output
NAME: dashboard-demo LAST DEPLOYED: Tue Mar 31 15:04:19 2020 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: ...

Lưu ý dòng NAME , được đánh dấu trong kết quả ví dụ trên. Trong trường hợp này, bạn đã chỉ định tên dashboard-demo . Đây là tên của bản phát hành . Bản phát hành Helm là một triển khai đơn lẻ của một biểu đồ 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 biểu đồ, mỗi bản có cấu hình riêng.

Bạn có thể liệt kê tất cả các bản phát hành trong cụm:

  • helm list

Đầu ra sẽ tương tự như sau:

Output
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION dashboard-demo default 1 2020-03-31 15:04:19.324774799 +0000 UTC deployed kubernetes-dashboard-1.10.1 1.10.1

Đến đây bạn có thể sử dụng kubectl để xác minh một dịch vụ mới đã được triển khai trên cụm:

  • kubectl get services

Đầu ra sẽ như thế này:

Output
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dashboard-demo-kubernetes-dashboard ClusterIP 10.245.115.214 <none> 443/TCP 4m44s kubernetes ClusterIP 10.245.0.1 <none> 443/TCP 19m

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

Đến đây bạn đã triển khai ứng dụng, bạn sẽ sử dụng Helm để thay đổi cấu hình và cập nhật việc triển khai.

Bước 3 - Cập nhật bản phát hành

Lệnh helm upgrade được dùng để nâng cấp bản phát hành với biểu đồ mới hoặc được cập nhật hoặc cập nhật các tùy chọn cấu hình (biến) của nó.

Bạn sẽ thực hiện một thay đổi đơn giản đối với dashboard-demo phát hành dashboard-demo để chứng minh quá trình cập nhật và khôi phục: bạn sẽ cập nhật tên của dịch vụ trang tổng quan thành chỉ kubernetes-dashboard , thay vì dashboard-demo-kubernetes-dashboard .

Biểu đồ kubernetes-dashboard cung cấp tùy chọn cấu hình fullnameOverride để kiểm soát tên dịch vụ. Để đổi tên bản phát hành, hãy chạy helm upgrade hệ điều hành với bộ tùy chọn này:

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

Bằng cách chuyển đối số --reuse-values , bạn đảm bảo các biến biểu đồ bạn đã set trước đó không bị đặt lại bởi quá trình nâng cấp.

Bạn sẽ thấy kết quả tương tự như bước helm install hướng helm install đầu tiên.

Kiểm tra xem các dịch vụ Kubernetes của bạn có phản ánh các giá trị được cập nhật hay không:

  • kubectl get services

Đầu ra sẽ giống như sau:

Output
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.245.0.1 <none> 443/TCP 38m kubernetes-dashboard ClusterIP 10.245.49.157 <none> 443/TCP 8s

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

Lưu ý: Đến đây, bạn có thể cần thực sự tải Control panel Kubernetes trong trình duyệt của bạn và kiểm tra nó. Để làm như vậy, trước tiên hãy chạy lệnh sau:

  • kubectl proxy

Điều này tạo ra một proxy cho phép bạn truy cập tài nguyên cụm từ xa từ máy tính local của bạn. Dựa trên các hướng dẫn trước, dịch vụ console của bạn được đặt tên là kubernetes-dashboard và nó đang chạy trong không gian tên default . Đến đây bạn có thể truy cập trang tổng quan tại URL sau:

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

Hướng dẫn thực sự sử dụng trang tổng quan không nằm trong phạm vi của hướng dẫn này, nhưng bạn có thể đọc tài liệu Trang tổng quan Kubernetes chính thức để biết thêm thông tin.

Tiếp theo, bạn sẽ xem xét khả năng khôi phục và xóa các bản phát hành của Helm.

Bước 4 - Quay lại và xóa bản phát hành

Khi bạn cập nhật dashboard-demo phát hành dashboard-demo ở bước trước, bạn đã tạo bản sửa đổi thứ hai của bản phát hành. Helm giữ lại tất cả các chi tiết của các bản phát hành trước trong trường hợp bạn cần quay trở lại cấu hình hoặc biểu đồ trước đó.

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

  • helm list

Bạn sẽ thấy kết quả sau:

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 bạn biết rằng đây là bản sửa đổi thứ hai.

Sử dụng tính năng helm rollback hướng dẫn để quay trở lại bản sửa đổi đầu tiên:

  • helm rollback dashboard-demo 1

Bạn sẽ thấy kết quả sau, cho biết rằng quá trình khôi phục đã thành công:

Output
Rollback was a success! Happy Helming!

Đến đây, nếu bạn chạy lại kubectl get services , bạn sẽ nhận thấy rằng tên dịch vụ đã thay đổi về giá trị trước đó. Helm đã triển khai lại ứng dụng với cấu hình của bản sửa đổi 1.

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

  • helm delete dashboard-demo

Đầu ra sẽ là:

Output
release "dashboard-demo" uninstalled

Bạn có thể thử liệt kê các bản phát hành Helm:

  • helm list

Bạn sẽ thấy rằng không có:

Output
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION

Bây giờ bản phát hành đã thực sự bị xóa và bạn có thể sử dụng lại tên bản phát hành.

Kết luận

Trong hướng dẫn này, bạn đã cài đặt công cụ dòng lệnh helm và khám phá cách cài đặt, nâng cấp, khôi phục và xóa các bản phát hành và biểu đồ Helm bằng cách quản lý biểu đồ kubernetes-dashboard .

Để biết thêm thông tin về Helm và biểu đồ Helm, vui lòng xem tài liệu chính thức của Helm .


Tags:

Các tin liên quan