Как да използвате Kubernetes nodeSelector

Kak Da Izpolzvate Kubernetes Nodeselector



Клъстерът Kubernetes използва ограниченията за планиране като: петна, етикети, толеранси и nodeSelector, за да разделя и планира работното натоварване на различни пулове възли. Ограниченията за планиране са често срещано изискване в Kubernetes за управление на инфраструктурата. В тази статия ще се съсредоточим върху ограниченията за планиране на nodeSelector. Ще проучим какво е nodeSelector, как работи и как може да се използва в Kubernetes. Ще ви представим прост сценарий, за да ви помогнем да разберете как ефективно да използвате Kubernetes nodeSelector.

Какво е Kubernetes nodeSelector?

NodeSelector е ограничение за планиране в Kubernetes, което определя карта под формата на ключ: персонализирани селектори на модули за двойки стойности и етикети на възли се използват за дефиниране на двойката ключ, стойност. NodeSelector, обозначен на възела, трябва да съвпада с двойката ключ: стойност, така че дадена група да може да се изпълнява на конкретен възел. За да планирате групата, етикетите се използват на възли, а nodeSelectors се използват на групи. OpenShift Container Platform планира подовете на възлите с помощта на nodeSelector, като съвпада с етикетите.

Освен това етикетите и nodeSelector се използват за контролиране кой pod да бъде планиран на конкретен възел. Когато използвате етикетите и nodeSelector, маркирайте първо възела, така че групите да не бъдат депланирани и след това добавете nodeSelector към групата. За да поставите определен pod на определен възел, се използва nodeSelector, докато nodeSelector за целия клъстер ви позволява да поставите нов pod върху определен възел, присъстващ навсякъде в клъстера. Проектът nodeSelector се използва за поставяне на новия pod на определен възел в проекта.







Предпоставки

За да използвате Kubernetes nodeSelector, уверете се, че имате инсталирани следните инструменти във вашата система:



  • Ubuntu 20.04 или друга последна версия
  • Клъстер Minikube с минимум един работен възел
  • Инструмент за команден ред Kubectl

Сега преминаваме към следващия раздел, където ще демонстрираме как можете да използвате nodeSelector на клъстер на Kubernetes.



Конфигурация на nodeSelector в Kubernetes

Под може да бъде ограничен така, че да може да работи само на конкретен възел, като се използва nodeSelector. NodeSelector е ограничение за избор на възел, което е посочено в PodSpec на спецификацията на pod. С прости думи, nodeSelector е функция за планиране, която ви дава контрол над групата, за да планирате групата на възел със същия етикет, зададен от потребителя за етикета nodeSelector. За да използвате или конфигурирате nodeSelector в Kubernetes, имате нужда от клъстера minikube. Стартирайте клъстера minikube с командата, дадена по-долу:





> стартирайте minikube

Сега, след като клъстерът minikube е стартиран успешно, можем да започнем внедряването на конфигурацията на nodeSelector в Kubernetes. В този документ ще ви насочим да създадете две внедрявания, едното е без nodeSelector, а другото е с nodeSelector.



Конфигуриране на разполагане без nodeSelector

Първо ще извлечем подробностите за всички възли, които в момента са активни в клъстера, като използваме командата, дадена по-долу:

> kubectl получава възли

Тази команда ще изброи всички налични възли в клъстера с подробности за име, статус, роли, възраст и параметри на версията. Вижте примерния резултат, даден по-долу:

Сега ще проверим какви замърсители са активни на възлите в клъстера, така че да можем да планираме съответно да разположим подовете на възела. Командата, дадена по-долу, трябва да се използва за получаване на описанието на петната, приложени към възела. Не трябва да има активни петна върху възела, така че шушулките да могат лесно да се разположат върху него. И така, нека да видим какви петна са активни в клъстера, като изпълним следната команда:

> kubectl описва възли minikube | хватка петно

От изхода, даден по-горе, можем да видим, че няма приложено замърсяване върху възела, точно това, от което се нуждаем, за да разположим подовете на възела. Сега следващата стъпка е да създадете внедряване, без да посочвате nodeSelector в него. По този въпрос ще използваме YAML файл, където ще съхраняваме конфигурацията на nodeSelector. Приложената тук команда ще се използва за създаване на YAML файла:

> нано deplond.yaml

Тук се опитваме да създадем YAML файл с име deplond.yaml с командата nano.

При изпълнение на тази команда ще имаме файл deplond.yaml, където ще съхраним конфигурацията за внедряване. Вижте конфигурацията за внедряване, дадена по-долу:

Сега ще създадем внедряването, като използваме конфигурационния файл за внедряване. Файлът deplond.yaml ще се използва заедно с командата „create“ за създаване на конфигурацията. Вижте пълната команда, дадена по-долу:

> kubectl създаване -f deplond.yaml

Както е показано по-горе, внедряването е създадено успешно, но без nodeSelector. Сега нека проверим възлите, които вече са налични в клъстера с командата, дадена по-долу:

> kubectl получите подс

Това ще изброи всички подове, налични в клъстера. Вижте резултата, даден по-долу:

  Автоматично генерирано текстово описание

След това трябва да променим броя на репликите, което може да стане чрез редактиране на файла deplond.yaml. Просто отворете файла deplond.yaml и редактирайте стойността на репликите. Тук променяме репликите: 3 на реплики: 30. Вижте модификацията в моментната снимка, дадена по-долу:

Сега промените трябва да бъдат приложени към внедряването от файла с дефиниция на внедряване и това може да стане с помощта на следната команда:

> kubectl се прилага -f deplond.yaml

  Автоматично генерирано текстово описание

Сега, нека проверим повече подробности за подовете, като използваме опцията -o wide:

> kubectl получите подс -The широк

  Автоматично генерирано текстово описание

От изхода, даден по-горе, можем да видим, че новите възли се създават и планират на възела, тъй като няма активно замърсяване на възела, който използваме от клъстера. Следователно, ние специално трябва да активираме петно, за да гарантираме, че подовете се планират само на желания възел. За целта трябва да създадем етикета на главния възел:

> kubectl label nodes master on-master= вярно

Конфигуриране на разполагане с nodeSelector

За да конфигурираме внедряването с nodeSelector, ще следваме същия процес, който е следвал за конфигурацията на внедряването без nodeSelector.

Първо, ще създадем YAML файл с командата „nano“, където трябва да съхраним конфигурацията на внедряването.

> нано nd.yaml

Сега запазете дефиницията за внедряване във файла. Можете да сравните двата конфигурационни файла, за да видите разликата между конфигурационните дефиниции.

Сега създайте внедряването на nodeSelector с командата, дадена по-долу:

> kubectl създаване -f nd.yaml

Получете подробности за подовете, като използвате флага -o wide:

> kubectl получите подс -The широк

  Текст, календар Описание, генерирано автоматично със средна степен на сигурност

От изхода, даден по-горе, можем да забележим, че подовете се разполагат на възела minikube. Нека променим броя на репликите, за да проверим къде се разполагат новите модули в клъстера.

Приложете новите промени върху внедряването, като използвате следната команда:

> kubectl се прилага -f nd.yaml

  Автоматично генерирано текстово описание

Заключение

В тази статия имахме общ преглед на ограничението за конфигурация на nodeSelector в Kubernetes. Научихме какво е nodeSelector в Kubernetes и с помощта на прост сценарий научихме как да създадем внедряване със и без ограничения на конфигурацията на nodeSelector. Можете да се обърнете към тази статия, ако не сте запознати с концепцията nodeSelector и да намерите цялата необходима информация.