Cách sử dụng Kubernetes nodeSelector

Cach Su Dung Kubernetes Nodeselector



Cụm Kubernetes sử dụng các ràng buộc lập lịch trình như: dấu vết, nhãn, dung sai và nodeSelector để tách biệt và lên lịch khối lượng công việc trên các nhóm nút khác nhau. Các ràng buộc lập lịch trình là một yêu cầu phổ biến trong Kubernetes để quản lý cơ sở hạ tầng. Chúng ta sẽ tập trung vào các ràng buộc lập lịch của nodeSelector trong bài viết này. Chúng ta sẽ khám phá nodeSelector là gì, nó hoạt động như thế nào và nó có thể được sử dụng như thế nào trong Kubernetes. Chúng tôi sẽ trình bày một kịch bản đơn giản để giúp bạn hiểu cách sử dụng Kubernetes nodeSelector một cách hiệu quả.

Kubernetes nodeSelector là gì?

NodeSelector là một ràng buộc lập lịch trình trong Kubernetes chỉ định bản đồ ở dạng khóa: bộ chọn nhóm tùy chỉnh cặp giá trị và nhãn nút được sử dụng để xác định cặp khóa, giá trị. nodeSelector được gắn nhãn trên nút phải khớp với cặp khóa: giá trị để có thể chạy một nhóm nhất định trên một nút cụ thể. Để lên lịch cho nhóm, các nhãn được sử dụng trên các nút và bộ chọn nút được sử dụng trên các nhóm. Nền tảng bộ chứa OpenShift lên lịch các nhóm trên các nút bằng cách sử dụng nútSelector bằng cách khớp các nhãn.

Hơn nữa, các nhãn và nodeSelector được sử dụng để kiểm soát nhóm nào sẽ được lên lịch trên một nút cụ thể. Khi bạn sử dụng các nhãn và nútSelector, trước tiên hãy gắn nhãn cho nút để các nhóm không bị hủy lịch trình rồi thêm nútSelector vào nhóm. Để đặt một nhóm nhất định trên một nút nhất định, nútSelector được sử dụng, trong khi nútSelector toàn cụm cho phép bạn đặt một nhóm mới trên một nút nhất định có mặt ở bất kỳ đâu trong cụm. Nút chọn dự án được sử dụng để đặt nhóm mới trên một nút nhất định trong dự án.







điều kiện tiên quyết

Để sử dụng Kubernetes nodeSelector, hãy đảm bảo rằng bạn đã cài đặt các công cụ sau trong hệ thống của mình:



  • Ubuntu 20.04 hoặc bất kỳ phiên bản mới nhất nào khác
  • Cụm minikube có tối thiểu một nút công nhân
  • Công cụ dòng lệnh Kubectl

Bây giờ, chúng ta sẽ chuyển sang phần tiếp theo, nơi chúng ta sẽ trình bày cách bạn có thể sử dụng nodeSelector trên cụm Kubernetes.



Cấu hình nodeSelector trong Kubernetes

Một nhóm có thể bị hạn chế để chỉ có thể chạy trên một nút cụ thể bằng cách sử dụng nútSelector. nodeSelector là một ràng buộc lựa chọn nút được chỉ định trong đặc tả nhóm PodSpec. Nói một cách đơn giản, nodeSelector là một tính năng lập lịch cho phép bạn kiểm soát nhóm để lên lịch cho nhóm trên một nút có cùng nhãn do người dùng chỉ định cho nhãn nodeSelector. Để sử dụng hoặc định cấu hình nodeSelector trong Kubernetes, bạn cần cụm minikube. Bắt đầu cụm minikube bằng lệnh được cung cấp bên dưới:





> bắt đầu minikube

Bây giờ cụm minikube đã được bắt đầu thành công, chúng ta có thể bắt đầu triển khai cấu hình của nútSelector trong Kubernetes. Trong tài liệu này, chúng tôi sẽ hướng dẫn bạn tạo hai triển khai, một triển khai không có bất kỳ nodeSelector nào và triển khai còn lại có nodeSelector.



Định cấu hình triển khai mà không cần nútSelector

Đầu tiên, chúng tôi sẽ trích xuất chi tiết của tất cả các nút hiện đang hoạt động trong cụm bằng cách sử dụng lệnh được cung cấp bên dưới:

> kubectl nhận các nút

Lệnh này sẽ liệt kê tất cả các nút có trong cụm với các chi tiết về tên, trạng thái, vai trò, tuổi và tham số phiên bản. Xem đầu ra mẫu được đưa ra dưới đây:

Bây giờ, chúng tôi sẽ kiểm tra những dấu vết nào đang hoạt động trên các nút trong cụm để chúng tôi có thể lên kế hoạch triển khai các nhóm trên nút cho phù hợp. Lệnh được đưa ra dưới đây sẽ được sử dụng để lấy mô tả về các dấu vết được áp dụng trên nút. Không nên có dấu vết nào đang hoạt động trên nút để các nhóm có thể dễ dàng triển khai trên đó. Vì vậy, chúng ta hãy xem những vết bẩn nào đang hoạt động trong cụm bằng cách thực hiện lệnh sau:

> kubectl mô tả các nút minikube | nắm chặt vết nhơ

Từ đầu ra được đưa ra ở trên, chúng ta có thể thấy rằng không có dấu vết nào được áp dụng trên nút, chỉ chính xác những gì chúng ta cần để triển khai các nhóm trên nút. Bây giờ, bước tiếp theo là tạo triển khai mà không chỉ định bất kỳ nútSelector nào trong đó. Đối với vấn đề đó, chúng tôi sẽ sử dụng tệp YAML nơi chúng tôi sẽ lưu trữ cấu hình nodeSelector. Lệnh đính kèm ở đây sẽ được sử dụng để tạo tệp YAML:

> nano deplond.yaml

Ở đây, chúng tôi đang cố gắng tạo một tệp YAML có tên deplond.yaml bằng lệnh nano.

Khi thực hiện lệnh này, chúng tôi sẽ có một tệp deplond.yaml nơi chúng tôi sẽ lưu trữ cấu hình triển khai. Xem cấu hình triển khai được đưa ra dưới đây:

Bây giờ, chúng tôi sẽ tạo triển khai bằng cách sử dụng tệp cấu hình triển khai. Tệp deplond.yaml sẽ được sử dụng cùng với lệnh 'tạo' để tạo cấu hình. Xem lệnh hoàn chỉnh được đưa ra dưới đây:

> tạo kubectl -f deplond.yaml

Như được hiển thị ở trên, quá trình triển khai đã được tạo thành công nhưng không có nútSelector. Bây giờ, chúng ta hãy kiểm tra các nút đã có sẵn trong cụm bằng lệnh dưới đây:

> kubectl lấy nhóm

Điều này sẽ liệt kê tất cả các nhóm có sẵn trong cụm. Xem đầu ra được đưa ra dưới đây:

  Văn bản Mô tả được tạo tự động

Tiếp theo, chúng ta cần thay đổi số lượng bản sao có thể được thực hiện bằng cách chỉnh sửa tệp deplond.yaml. Chỉ cần mở tệp deplond.yaml và chỉnh sửa giá trị của các bản sao. Ở đây, chúng tôi đang thay đổi bản sao: 3 thành bản sao : 30. Xem sửa đổi trong ảnh chụp nhanh được cung cấp bên dưới:

Bây giờ, các thay đổi cần được áp dụng cho quá trình triển khai từ tệp định nghĩa triển khai và điều đó có thể được thực hiện bằng cách sử dụng lệnh sau:

> áp dụng kubectl -f deplond.yaml

  Văn bản Mô tả được tạo tự động

Bây giờ, hãy để chúng tôi kiểm tra thêm chi tiết về các nhóm bằng cách sử dụng tùy chọn -o wide:

> kubectl lấy nhóm -Các rộng

  Văn bản Mô tả được tạo tự động

Từ đầu ra được đưa ra ở trên, chúng ta có thể thấy rằng các nút mới đã được tạo và lên lịch trên nút vì không có vết bẩn nào hoạt động trên nút mà chúng ta đang sử dụng từ cụm. Do đó, chúng tôi đặc biệt cần kích hoạt một dấu vết để đảm bảo rằng các nhóm chỉ được lên lịch trên nút mong muốn. Để làm được điều đó, chúng ta cần tạo nhãn trên nút chính:

> nút nhãn kubectl master on-master= ĐÚNG VẬY

Cấu hình triển khai với nodeSelector

Để định cấu hình triển khai với một nútSelector, chúng tôi sẽ thực hiện theo quy trình tương tự đã tuân theo đối với cấu hình triển khai mà không có bất kỳ nútSelector nào.

Đầu tiên, chúng tôi sẽ tạo một tệp YAML bằng lệnh ‘nano’, nơi chúng tôi cần lưu trữ cấu hình triển khai.

> nano nd.yaml

Bây giờ, lưu định nghĩa triển khai trong tệp. Bạn có thể so sánh cả hai tệp cấu hình để thấy sự khác biệt giữa các định nghĩa cấu hình.

Bây giờ, hãy tạo triển khai nodeSelector bằng lệnh dưới đây:

> tạo kubectl -f nd.yaml

Nhận thông tin chi tiết về các nhóm bằng cách sử dụng cờ -o wide:

> kubectl lấy nhóm -Các rộng

  Văn bản, lịch Mô tả được tạo tự động với độ tin cậy trung bình

Từ đầu ra được đưa ra ở trên, chúng ta có thể nhận thấy rằng các nhóm đang được triển khai trên nút minikube. Hãy để chúng tôi thay đổi số lượng bản sao để kiểm tra xem các nhóm mới được triển khai ở đâu trong cụm.

Áp dụng các thay đổi mới khi triển khai bằng cách sử dụng lệnh sau:

> áp dụng kubectl -f nd.yaml

  Văn bản Mô tả được tạo tự động

Phần kết luận

Trong bài viết này, chúng ta đã có cái nhìn tổng quan về ràng buộc cấu hình nodeSelector trong Kubernetes. Chúng tôi đã tìm hiểu nodeSelector là gì trong Kubernetes và với sự trợ giúp của một kịch bản đơn giản, chúng tôi đã học cách tạo triển khai có và không có các ràng buộc cấu hình nodeSelector. Bạn có thể tham khảo bài viết này nếu bạn chưa quen với khái niệm nodeSelector và tìm tất cả các thông tin liên quan.