Lệnh Kubectl Autoscale

Lenh Kubectl Autoscale



Kubernetes cung cấp khả năng tự động thay đổi quy mô để tự động quản lý tài nguyên mà không cần sự tương tác của con người. Chức năng autoscale tự động thay đổi số lượng nút khi được yêu cầu và tiết kiệm tài nguyên. Trong bài viết này, chúng ta sẽ tìm hiểu cách triển khai lệnh “kubectl autoscale” và autoscaling “HorizontalPodScaler”. Hướng dẫn này dạy khái niệm quan trọng này một cách chi tiết. Trước tiên, hãy thảo luận về khái niệm kubectl autoscale là gì và sau đó hướng tới quy trình từng bước để hiểu rõ hơn. Bài viết này rất hữu ích nếu bạn chưa quen với khái niệm tự động thay đổi quy mô Kubernetes.

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óm

Sử 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:

  Ảnh chụp màn hình chương trình máy tính Mô tả được tạo tự động với độ tin cậy thấp

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 khai

Sau 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 = 10

Sau 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.yaml

Sau 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/v1
loạ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ươi

Tạ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 hpa

Phầ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ệ.