Kubectl Autoscale là gì?
Tự động thay đổi quy mô là tính năng chính trong cụm Kubernetes, giúp các tài nguyên tự động cập nhật mà không gặp rắc rối khi thực hiện thủ công. Việc cập nhật các tài nguyên theo cách thủ công là một quá trình rất lãng phí thời gian và tài nguyên. Kubernetes autoscaling cung cấp một cơ sở tự động để tối ưu hóa tài nguyên.
Autoscaler có thể tạo và hủy số lượng nút theo yêu cầu. Autoscale giảm lãng phí tài nguyên. Kubectl autoscale tự động chọn các nhóm hiện đang thực thi bên trong cụm Kubernetes.
Có hai loại chia tỷ lệ: (1) NgangPodScaler và (2) Chia tỷ lệ dọc. Bộ chia tỷ lệ ngang khác với bộ chia tỷ lệ dọc. HorizontalPodScaler giúp giảm hoặc tăng nhóm khi cần. Mặt khác, Bộ chia tỷ lệ dọc sử dụng các tài nguyên như CPU và bộ nhớ.
Dưới đây là tất cả các bước mà bạn có thể làm theo trong hệ thống của mình và xem đầu ra để hiểu rõ hơn.
Bước 1: Bắt đầu một cụm Minikube
Ở bước đầu tiên, hãy khởi động công cụ minikube để chạy cụm Kubernetes để chúng ta thực hiện lệnh “kubectl autoscale”. Bạn có thể thiết lập các nút, nhóm và thậm chí là một cụm trong môi trường Kubernetes bằng cụm minikube. Để làm như vậy, hãy sử dụng lệnh sau để giữ minikube ở chế độ hoạt động:
~$ bắt đầu minikube
Như bạn có thể thấy trong ảnh chụp màn hình đầu ra sau đây, lệnh này kích hoạt cụm minikube và làm cho môi trường Kubernetes có thể sử dụng được:
Bước 2: Nhận thông tin chi tiết về Pod
Ở bước này, cụm Kubernetes đang chạy thành công. Bây giờ, chúng tôi nhận được các chi tiết nhóm trong cụm. Nhóm trong Kubernetes là tập hợp các đơn vị chia sẻ tài nguyên. Tập lệnh sau được thực thi bằng cách chạy lệnh sau trong cụm minikube của bạn:
~$ kubectl lấy nhómSử dụng lệnh trước đó là “kubectl get pods”, chúng ta có thể lấy danh sách tất cả các nhóm chạy trong cụm Kubernetes.
Sau khi thực hiện lệnh “get pods”, chúng ta thu được kết quả như sau:
Bước 3: Nhận bản triển khai của Pod
Trong lệnh “kubectl get pods” trước đó, chúng ta lấy thông tin chi tiết về các nhóm. Bây giờ, chúng tôi sử dụng lệnh “nhận triển khai” để lấy danh sách các triển khai đã tạo. Đoạn script sau được thực thi cho mục đích này:
~$ kubectl nhận triển khaiSau khi thực hiện lệnh, ảnh chụp màn hình sau đây hiển thị đầu ra:
Bước 4: Triển khai Autoscale
Lệnh autoscale được sử dụng để thực hiện lựa chọn tự động hóa các nhóm chạy trong cụm. Bằng cách triển khai tính năng tự động chia tỷ lệ trong cụm, chúng tôi sẽ tự động chèn và chấm dứt số lượng nút. Tập lệnh sau được thực thi trong cụm minikube và nó hiển thị tên tệp, nhóm tối thiểu và nhóm tối đa trong đó nhóm phải nằm trong khoảng từ 2 đến 10:
~$ kubectl autoscale triển khai nginx1-triển khai1 --min = 2 --max = 10Sau khi thực hiện lệnh, đầu ra sau được tạo:
Bước 5: Tạo tệp YAML Kubernetes
Trong bước này, bạn sẽ học cách tạo tệp YAML trong cụm. Tệp YAML hữu ích cho việc triển khai và thử nghiệm ứng dụng. Có nhiều loại khác nhau trong Kubernetes để tạo và chỉnh sửa tệp.
Trong bài viết này, chúng tôi sử dụng lệnh “nano” để tạo tệp YAML vì đây là cách dễ nhất và là lựa chọn tốt nhất cho người mới bắt đầu.
Thực hiện theo các bước đã cho ở đây để tạo tệp YAML bằng nano:
- Để tạo một tệp mới hoặc thay đổi tệp hiện có, hãy điều hướng đến vị trí thư mục mong muốn.
- Nhập 'nano'. Sau đó, viết tên của tập tin. Ví dụ: nếu bạn muốn tạo tên tệp mới, hãy ghi tên đó – “deploo.yaml”.
Chạy tập lệnh sau và tạo tệp YAML trong thư mục dự án:
~$ nano deploo.yamlSau khi tạo tệp “deploo.yaml”, bước tiếp theo là định cấu hình tệp YAML. Chúng tôi giải thích nó trong bước sau.
Bước 6: Nội dung của tệp YAML
Trong bước này, chúng ta có thể dễ dàng cấu hình máy chủ Apache và các tệp PHP. Trước khi chúng tôi sử dụng HorizontalPodScaler, chúng tôi phải định cấu hình trình giám sát khối lượng công việc. Vì đoạn mã sau hiển thị loại:triển khai, cổng của trình duyệt web là 90 và giới hạn CPU là 200m.
Bạn có thể xem thông tin đầy đủ về tệp “deploo.yaml” tại đây:
phiên bản api : ứng dụng/v1loại : triển khai
metadata :
tên : php
thông số kỹ thuật :
bộ chọn :
trận đấuNhãn :
chạy : php-apache
bản mẫu :
metadata :
nhãn :
chạy : php-apache
thông số kỹ thuật :
hộp đựng :
- tên : php
hình ảnh : registry.k8s.io/hpa-example
cổng :
- cảng container : 90
tài nguyên :
Hạn mức :
CPU : 200m
yêu cầu :
CPU : 100m
---
phiên bản api : v1
loại : Dịch vụ
metadata :
tên : php
nhãn :
chạy : php-apache
thông số kỹ thuật :
cổng :
- Hải cảng : 70
bộ chọn :
chạy : php-apache
Bước 7: Tạo Triển khai
Trong bước này, hãy tạo tệp YAML có tên là “deploo.yaml”. Tập lệnh sau được thực thi trong cụm minikube:
~$ kubectl tạo -f deploo.yamlĐầu ra của lệnh nói trên mà chúng tôi đã thực hiện có thể được nhìn thấy trong ảnh chụp màn hình sau. Đầu ra chỉ ra rằng tệp YAML đã được tạo:
Bước 8: Tạo HorizontalPodScaler
Trong bước này, chúng tôi sẽ chỉ cho bạn lệnh để tạo HorizontalPodAutoscaler. Các nhóm được chèn và kết thúc tự động tùy thuộc vào nhu cầu. Nó khác với chia tỷ lệ theo chiều dọc, theo đó tài nguyên CPU và bộ nhớ được chỉ định theo tỷ lệ tự động. Tập lệnh sau được thực thi trong cụm minikube:
~$ kubectl autoscale triển khai php -- CPU - phần trăm = năm mươi -- tối thiểu = 10 –tối đa = hai mươiTại đây, bạn có thể thấy rằng chúng tôi đặt giá trị tối thiểu và tối đa là 10 và 20.
Kèm theo là đầu ra của lệnh trước:
Bước 9: Kiểm tra HorizontalPodScaler
Trong bước này, chúng tôi kiểm tra trạng thái hiện tại của HorizontalPodAutoscaler mới được tạo. Lệnh sau được thực hiện:
~$ kubectl lấy hpaPhần kết luận
Một trong những tính năng hữu ích nhất của Kubernetes là “kubectl autoscale” cung cấp các bản cập nhật tài nguyên tự động trong cụm Kubernetes. Autoscaler trợ giúp khi một cụm cần tăng nhóm hoặc giảm nhóm. Trong bài viết này, chúng ta đã học được hai phương pháp tự động chia tỷ lệ – một là phương pháp tự động chia tỷ lệ mặc định và phương pháp kia là HorizontalPodScaler.
Đầu tiên, chúng tôi triển khai các nhóm và khai báo chúng. Sau đó, chúng tôi đã tạo bộ chia tỷ lệ tự động và định cấu hình máy chủ Apache để triển khai trình giám sát khối lượng công việc trước HorizontalPodScaler. Sau đó, chúng tôi đã tạo tệp YAML và tệp HorizontalPodScaler. Bài viết này tập trung vào các bước chi tiết để tạo, định cấu hình và triển khai Kubernetes tự động chia tỷ lệ.