Bài viết này là phần tiếp theo của bài viết "Helm là gì và cách cài đặt trên máy chủ Ubuntu 20.04?". Nếu bạn mới biết đến Helm, tôi khuyên bạn nên đọc qua bài viết tôi đã đề cập trước. Trong bài viết này, chúng ta sẽ giải phóng Apache khỏi biểu đồ hiện có. Chúng ta sẽ tạo một biểu đồ mẫu và giải phóng, nâng cấp, khôi phục, xóa và khôi phục lại. Hãy cùng xem qua các lệnh trước khi sử dụng chúng trong bài viết sau.
phiên bản helm
Ví dụ, hãy thử cài đặt biểu đồ Apache từ hub. Thực hiện lệnh sau để tìm kiếm Apache trên hub.
helm search hub apache
Bạn sẽ nhận được một tập hợp kết quả, hãy sao chép URL của một trong các tìm kiếm cho Apache. Trong trường hợp này, tôi đã sao chép URL đầu tiên.
Nhấp vào URL trong trình duyệt web và bạn sẽ thấy một trang như sau.
Trên trang này, bạn sẽ nhận được lệnh để thêm arepo vào hệ thống cục bộ của mình và cài đặt biểu đồ từ đó.
Thực hiện các lệnh trên hệ thống cục bộ của bạn để thêm kho lưu trữ cho biểu đồ Apache.
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo list
Sau khi có kho lưu trữ trên hệ thống, bạn đã sẵn sàng cài đặt biểu đồ và tạo bản phát hành cho Apache bằng Helm.
helm install my-release bitnami/apache
Sau khi thực hiện thành công các lệnh, bạn sẽ thấy kết quả như trên.
Sau khi biểu đồ được phát hành, bạn có thể thấy các đối tượng đã được tạo trên cụm Kubernetes.
kubectl get nodes
kubectl get pods
Bây giờ bạn có thể lấy IP của pod và thử truy cập trang Apache bằng lệnh curl.
kubectl get pods -o wide
kubectl get svc
curl 10.244.1.2:8080
Nếu bạn muốn xóa bản phát hành, bạn có thể thực hiện đơn giản bằng lệnh sau
helm delete my-release
Bạn có thể liệt kê các bản phát hành trên cụm và xem bản phát hành đã được xóa thành công hay chưa.
helm ls
helm status my-release
helm create my-first-chart
Khám phá cấu trúc thư mục của biểu đồ mà chúng ta đã tạo bằng lệnh trên.
cd my-first-chart/
ls -l
ls -l charts/
ls -l templates/
ls -l templates/tests/
Kiểm tra nội dung của tệp Chart.yaml.
ls -lt
cat Chart.yaml
Kiểm tra nội dung củavalues.yaml
ls -lt
cat values.yaml
Bây giờ chúng ta hãy triển khai ứng dụng mẫu bằng biểu đồ cục bộ.
pwd
cd ..
ls -l | grep my-first-chart
kubectl get pods
helm install my-first-release my-first-chart/
Sau khi biểu đồ được phát hành thành công, bạn có thể thấy một pod được tạo trong cụm.
kubectl get pods
kubectl get svc
Bây giờ bạn có thể truy cập pod Nginx thông qua dịch vụ.
curl 10.104.229.187
Bạn có thể tìm thông tin liên quan đến bản phát hành mà chúng tôi được tạo bằng lệnh sau.
helm ls
helm status my-first-release
cat my-first-chart/values.yaml | grep bản sao
vim my-first-chart/values.yaml
cat my-first-chart/values.yaml | grep replica
helm ls
Bây giờ bạn có thể dễ dàng triển khai các thay đổi và nâng cấp bản phát hành của mình.
helm upgrade my-first-release my-first-chart/
Bạn thậm chí có thể nhận thấy bản sửa đổi của bản phát hành được cập nhật thành 2.
helm ls
Lần này bạn có thể thấy hai pod đang chạy trong cụm vì chúng tôi đã chỉ định số lượng bản sao là 2.
kubectl get pods
helm ls
Nếu chúng tôi kiểm tra lịch sử phát hành chúng ta sẽ thấy rằng bản phát hành có hai bản sửa đổi. Bản sửa đổi một có 1pod và sau đó chúng tôi đã cập nhật số lượng bản sao thành 2, tạo ra bản sửa đổi 2 của bản phát hành.
lịch sử helm my-first-release
Nếu chúng tôi không muốn các thay đổi được phát hành trong bản sửa đổi 2 và muốn quay lại bản sửa đổi 1, chúng tôi có thể thực hiện đơn giản bằng lệnh khôi phục sau.
helm rollback my-first-release 1
helm ls
Và lệnh này sẽ tạo bản sửa đổi 3 cho bản phát hành.
lịch sử helm my-first-release
Bây giờ bạn có thể thấy chỉ có onepod đang chạy trong cụm.
kubectl get pods
Trong trường hợp bạn muốn xóa ứng dụng Nginx mẫu đã phát hành khỏi biểu đồ, bạn có thể xóa ứng dụng đó bằng cách xóa bản phát hành.
helm ls
helm delete my-first-release
helm ls
helm ls
helm install my-second-release my-first-chart/
helm ls
Nếu bạn chỉ định tùy chọn --keep-history trong khi xóa bản phát hành, helm sẽ tạo phiên bản phát hành mới. Theo cách này, bạn có thể quay lại phiên bản đang hoạt động trước đó ngay cả sau khi xóa bản phát hành hoặc ứng dụng.
helm delete my-second-release --keep-history
helm ls
helm ls -a
helm history my-second-release
helm rollback my-second-release 1
helm ls
helm history my-second-release
- helm search: Tìm kiếm biểu đồ Helm
- helm repo: Thực hiện các thao tác như thêm, liệt kê, xóa, cập nhật và lập chỉ mục trên Kho lưu trữ
- helm delete: Xóa biểu đồ, sau đó xóa tất cả các đối tượng Kubernetes của biểu đồ đó.
- helmstatus: Hiển thị trạng thái của bản phát hành.
- helm create: Tạo biểu đồ helm.
- helm install: Cài đặt biểu đồ, sau đó tạo các đối tượng Kubernetes của biểu đồ đó
- helm upgrade: Nâng cấp bản phát hành với những thay đổi mà chúng tôi đã thực hiện.
- helm history: Lấy lịch sử của bản phát hành.
- helm rollback: Hoàn nguyên các thay đổi về bản phát hành trước đó version.
Điều kiện tiên quyết
- Cụm Kubernetes có ít nhất 1 nút worker.
Nếu bạn muốn tìm hiểu cách tạo Cụm Kubernetes, hãy nhấp vào đây. Hướng dẫn này sẽ giúp bạn tạo cụm Kubernetes với 1 Master và 2 Node trên AWS Ubuntu 18.04 EC2 Instances. - Helm được cài đặt trên node master của bạn (Tìm kiếm bài viết của tôi có tên "Helm là gì và cách cài đặt trên máy chủ Ubuntu 20.04" để hiểu những điều cơ bản về Helm và cài đặt nó).
Chúng ta sẽ làm gì?
- Phát hành biểu đồ mẫu từ kho lưu trữ.
- Tạo biểu đồ và phát hành ứng dụng mẫu.
- Nâng cấp bản phát hành.
- Khôi phục bản phát hành sau khi đã xóa
Phát hành biểu đồ mẫu từ kho lưu trữ
Đầu tiên, chúng ta hãy kiểm tra xem "helm" có khả dụng trên máy chủ hay không.phiên bản helm
Ví dụ, hãy thử cài đặt biểu đồ Apache từ hub. Thực hiện lệnh sau để tìm kiếm Apache trên hub.
helm search hub apache
Bạn sẽ nhận được một tập hợp kết quả, hãy sao chép URL của một trong các tìm kiếm cho Apache. Trong trường hợp này, tôi đã sao chép URL đầu tiên.
Nhấp vào URL trong trình duyệt web và bạn sẽ thấy một trang như sau.
Trên trang này, bạn sẽ nhận được lệnh để thêm arepo vào hệ thống cục bộ của mình và cài đặt biểu đồ từ đó.
Thực hiện các lệnh trên hệ thống cục bộ của bạn để thêm kho lưu trữ cho biểu đồ Apache.
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo list
Sau khi có kho lưu trữ trên hệ thống, bạn đã sẵn sàng cài đặt biểu đồ và tạo bản phát hành cho Apache bằng Helm.
helm install my-release bitnami/apache
Sau khi thực hiện thành công các lệnh, bạn sẽ thấy kết quả như trên.
Sau khi biểu đồ được phát hành, bạn có thể thấy các đối tượng đã được tạo trên cụm Kubernetes.
kubectl get nodes
kubectl get pods
Bây giờ bạn có thể lấy IP của pod và thử truy cập trang Apache bằng lệnh curl.
kubectl get pods -o wide
kubectl get svc
curl 10.244.1.2:8080
Nếu bạn muốn xóa bản phát hành, bạn có thể thực hiện đơn giản bằng lệnh sau
helm delete my-release
Bạn có thể liệt kê các bản phát hành trên cụm và xem bản phát hành đã được xóa thành công hay chưa.
helm ls
helm status my-release
Tạo biểu đồ và triển khai ứng dụng mẫu
Trong tình huống trên, chúng tôi đã cài đặt một biểu đồ có sẵn và được cấu hình sẵn. Chúng tôi có thể tạo biểu đồ của riêng mình và phát hành ứng dụng của mình. Việc tạo biểu đồ rất đơn giản khi sử dụng helm. Nếu bạn thực hiện lệnh sau, bạn sẽ nhận được một biểu đồ có ứng dụng mẫu của Nginx trong đó.helm create my-first-chart
Khám phá cấu trúc thư mục của biểu đồ mà chúng ta đã tạo bằng lệnh trên.
cd my-first-chart/
ls -l
ls -l charts/
ls -l templates/
ls -l templates/tests/
Kiểm tra nội dung của tệp Chart.yaml.
ls -lt
cat Chart.yaml
Kiểm tra nội dung củavalues.yaml
ls -lt
cat values.yaml
Bây giờ chúng ta hãy triển khai ứng dụng mẫu bằng biểu đồ cục bộ.
pwd
cd ..
ls -l | grep my-first-chart
kubectl get pods
helm install my-first-release my-first-chart/
Sau khi biểu đồ được phát hành thành công, bạn có thể thấy một pod được tạo trong cụm.
kubectl get pods
kubectl get svc
Bây giờ bạn có thể truy cập pod Nginx thông qua dịch vụ.
curl 10.104.229.187
Bạn có thể tìm thông tin liên quan đến bản phát hành mà chúng tôi được tạo bằng lệnh sau.
helm ls
helm status my-first-release
Nâng cấp bản phát hành
Trong kịch bản trên, chúng tôi đã tạo một biểu đồ với ứng dụng sampleNginx. Số lượng bản sao trong kịch bản trên là 1. Nếu bạn muốn tăng số lượng bản sao, bạn có thể dễ dàng thực hiện bằng cách thay đổi tệp values.yaml.cat my-first-chart/values.yaml | grep bản sao
vim my-first-chart/values.yaml
cat my-first-chart/values.yaml | grep replica
helm ls
Bây giờ bạn có thể dễ dàng triển khai các thay đổi và nâng cấp bản phát hành của mình.
helm upgrade my-first-release my-first-chart/
Bạn thậm chí có thể nhận thấy bản sửa đổi của bản phát hành được cập nhật thành 2.
helm ls
Lần này bạn có thể thấy hai pod đang chạy trong cụm vì chúng tôi đã chỉ định số lượng bản sao là 2.
kubectl get pods
helm ls
Nếu chúng tôi kiểm tra lịch sử phát hành chúng ta sẽ thấy rằng bản phát hành có hai bản sửa đổi. Bản sửa đổi một có 1pod và sau đó chúng tôi đã cập nhật số lượng bản sao thành 2, tạo ra bản sửa đổi 2 của bản phát hành.
lịch sử helm my-first-release
Nếu chúng tôi không muốn các thay đổi được phát hành trong bản sửa đổi 2 và muốn quay lại bản sửa đổi 1, chúng tôi có thể thực hiện đơn giản bằng lệnh khôi phục sau.
helm rollback my-first-release 1
helm ls
Và lệnh này sẽ tạo bản sửa đổi 3 cho bản phát hành.
lịch sử helm my-first-release
Bây giờ bạn có thể thấy chỉ có onepod đang chạy trong cụm.
kubectl get pods
Trong trường hợp bạn muốn xóa ứng dụng Nginx mẫu đã phát hành khỏi biểu đồ, bạn có thể xóa ứng dụng đó bằng cách xóa bản phát hành.
helm ls
helm delete my-first-release
helm ls
Khôi phục bản phát hành sau khi đã xóa
Trong trường hợp trên, chúng tôi đã xóa bản phát hành. Nhưng theo mặc định, bản phát hành không giữ lại lịch sử phát hành khi bị xóa. Trong trường hợp bạn muốn khôi phục trong trường hợp như vậy, bạn sẽ không thể thực hiện được trừ khi bạn chỉ định tùy chọn --keep-history cho lệnh xóa bản phát hành.helm ls
helm install my-second-release my-first-chart/
helm ls
Nếu bạn chỉ định tùy chọn --keep-history trong khi xóa bản phát hành, helm sẽ tạo phiên bản phát hành mới. Theo cách này, bạn có thể quay lại phiên bản đang hoạt động trước đó ngay cả sau khi xóa bản phát hành hoặc ứng dụng.
helm delete my-second-release --keep-history
helm ls
helm ls -a
helm history my-second-release
helm rollback my-second-release 1
helm ls
helm history my-second-release