Кубернети

Урок за оператор Kubernetes

Урок за оператор Kubernetes
Kubernetes Operators са концепция, въведена от проекта CoreOS за разширяване на възможностите на Kubernetes, по-специално управлението на Stateful приложения. Предполага се, че ще опрости целия жизнен цикъл на държавни ресурси от пакетирането на приложението и разполагането му в клъстер Kubernetes чак до управлението и мащабирането на приложението.

Като пример, някои от основните компоненти на Kubernetes като etcd имат съответните оператори, предоставени от проекта CoreOs. Etcd е разпределено хранилище ключ-стойност, което отразява текущото състояние на целия клъстер Kubernetes във всеки един момент. Естествено, това е приложение с състояние и различни контролери на Kubernetes се позовават на etcd, за да разберат каква ще бъде следващата им стъпка. Например, контролерът ReplicaSet ще разгледа броя на шушулките, изпълнявани под даден селектор, и ще се опита да донесе броя на изпълняващите се екземпляри, равен на броя, посочен от вашия ReplicaSet или YAML за внедряване. ReplicaSet се отнася до etcd, който проследява броя на работещите шушулки и след като броят на шушулките бъде променен на желана стойност, etcd ще актуализира записа си и за него.

Но що се отнася до Stateful приложения, като самия etcd, не можем да въртим повече шушулки в различни възли без сериозна намеса. Тъй като всички работещи екземпляри трябва да имат данни, съвместими по всяко време. Тук операторите са полезни.

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

Ако искате да продължите в този урок, можете да започнете с нещо малко като Minikube, инсталиран на вашия лаптоп, или дистрибуцията Kubernetes, която се предлага с Docker за настолен компютър.

Най-важното е да започнете да разбирате основните идеи на Kubernetes.

И т.н

Нека създадем Оператор, който да управлява etcd в нашия клъстер Kubernetes. Няма да инсталираме etcd като компонент Kubernetes (т.е. в пространството от имена на системата kube), а като редовно приложение. Защото това би поставило в риск целия клъстер. След като се почувствате добре с операторите, можете да ги използвате за разполагане на etcd в системата kube, докато стартирате нов клъстер.

Тук ще използвам Katacoda Playground и по-внимателната проверка на пространството от имена на системата kube ще ви покаже, че имаме една подсистема, работеща etcd за нас. Но това не е нещо, с което ще се занимаваме. Ще инсталираме etcd в пространството от имена по подразбиране, управлявано от etcd-оператор

Стартирането на пространството от имена по подразбиране няма изпълнени подси, ние имаме чист лист.

$ kubectl вземете шушулки

Няма намерени ресурси.

Сега нека инсталираме нов екземпляр на etcd в това пространство от имена. Започваме с клонирането на хранилището, последвано от проста команда kubectl.

$ git clone https: // github.com / coreos / etcd-оператор.git
$ cd etd-оператор

Създаване на Etcd оператор

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

$ / example / rbac / create_role.ш
$ kubectl създай -f ./ пример / разполагане.ямъл

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

$ kubectl създай -f ./ пример / пример-etcd-клъстер.ямъл

Това създава клъстер на etcd под. Можете да ги видите с помощта на:

$ kubectl вземете шушулки
 
ИМЕ ГОТОВ СТАТУС ВЪЗСТАНОВЯВА ВЪЗРАСТ
etcd-operator-69b559656f-495vg 1/1 Работещи 0 9m
пример-etcd-cluster-9bxfh657qq 1/1 Работещи 0 23s
пример-etcd-cluster-ntzp4hrw79 1/1 Работещи 0 8m
пример-etcd-cluster-xwlpqrzj2q 1/1 Работи 0 9m

Първият в този списък е операторът pod, който ще гарантира, че клъстерът etcd поддържа определено състояние, както е посочено в yaml файловете, които използвахме по-рано. Ако се опитате да изтриете един от примерите-etcd-клъстер, ще бъде създаден друг, който да заеме неговото място. Това е забележително подобно на това, което ReplicaSet прави, но тук, че шушулките са в състояние!

Оператори като цяло

Както бе споменато по-рано, операторите са обща рамка, в която човек може да разполага и управлява сложни приложения. Самата рамка е това, което ги прави полезни, а конкретните примери като оператор etcd или оператор Prometheus, които CoreOS предоставя, имат за цел да действат като ръководство за разработване на собствено приложение по подобен начин.

Няколко важни аспекта на Kubernetes Operators са SDK използва се за писане, изграждане и тестване на вашия собствен потребителски оператор, втората е идеята на Мениджър на жизнения цикъл на оператора при което можете да помислите за всички различни етапи, през които може да премине вашият оператор, както и услугата, която предлага.

Етапите на жизнения цикъл могат да включват различни актуализации, като се разбере кой оператор работи в кои пространства от имена и също така се актуализират операторите, когато се появи нова версия.

Препратки

Можете да прочетете много повече за тази технология в:

  1. Оригиналната публикация на CoreOS и
  2. Операторът etcd може да бъде изследван тук
Как да разработите игра на Linux
Преди десетилетие не много потребители на Linux биха прогнозирали, че любимата им операционна система един ден ще бъде популярна игрална платформа за ...
Пристанища с отворен код на търговски игрални машини
Безплатни разширения на играта с отворен код и междуплатформени игри могат да се използват за възпроизвеждане на стари, както и някои от доста скорошн...
Най-добрите игри за команден ред за Linux
Командният ред не е само най-големият ви съюзник при използване на Linux - той може да бъде и източник на забавление, защото можете да го използвате, ...