Кубернети

Kubernetes ReplicaSet Урок

Kubernetes ReplicaSet Урок
Kubernetes често се разглежда като тази огромна съвкупност от взаимосвързани понятия като възли и модули, услуги, разполагания и т.н., които често са трудни за разплитане. В тази публикация нека бавно разгадаем ключова абстракция, която е ReplicaSet. Ще започнем, като създадем малък .yaml файл за Kubernetes шушулка, която ще има етикет към него, и след това ще създаде ReplicaSet, който ще гарантира, че определен брой шушулки с един и същ етикет винаги се изпълняват в клъстера . Това е, което всъщност са планирали авторите на проекти, когато са проектирали Kubernetes. И така, да започнем.

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

Първото нещо, от което ще се нуждаете, ще бъде достъп до клъстер Kubernetes. Можете да създадете такъв с помощта на Minikube или да използвате Docker за Windows или Docker за Mac, и двете от които сега се предлагат с един възел Kubernetes разпространение, което можете да активирате в настройките на Docker.

Също така ще трябва да имате известни априорни познания за Kubernetes. Ето наистина добра отправна точка.

Създаване на шушулки

Обикновено създаваме шушулки, използвайки yaml файл, който указва какво изображение на контейнера да използва, кои портове да изложи и т.н. Ето един прост файл за създаване на nginx шушулка.

apiVersion: v1
вид: Под
метаданни:
име: nginx-1
етикет:
приложение: уеб сървър
спецификация:
контейнери:
- име: nginx
изображение: nginx: 1.7.9
портове:
- containerPort: 80

Запазете го под името nginx-pod.ямъл в директория и след това отвътре в същата директория изпълнете командата:

$ kubectl създай -f ./ nginx-pod.ямъл
## Проверете дали подът е създаден чрез стартиране:
$ kubectl вземете шушулки

Ще забележите, че само една шушулка с име „Nginx-1“ работи и работи. Но не можете да мащабирате тази единична шушулка. Бягане kubectl създаване отново ще ви даде грешка от името nginx-1 не може да се използва отново.

Kubernetes е предоставил възможността да създава шушулки на по-високи абстракции като Внедряване и ReplicaSets. Които създават шушулки от даден шаблон на шушулка, указващи какви изображения да се използват, какви портове да се излагат във всеки от новите шушулки и т.н. След това ReplicaSet (и внедряванията) създайте нови шушулки, давайки на всяка нова шушулка уникално име, както и нееднозначен етикет, който помага на ReplicaSet да следи шушулките, създадени от даден шаблон.

ReplicaSet гарантира, че във всеки един момент определен брой шушулки от даден етикет са винаги готови и работещи. Ако например възел падне, задачата на ReplicaSet е да създаде повече шушулки в други възли, за да компенсира загубата. За да напишем реплика на yaml файл, ще следваме модела, подобен на писането на шушулка. Той ще има api версия (apps / v1), тип (ReplicaSet) и име в метаданните. Самият репликатор може да има етикети, но засега ще улесним нещата и ще му дадем уникално име my-replicaset.

След това трябва да преминем от метаданни раздел към месото на материята спец. Тук предоставяме броя на репликациите, които искаме в раздела реплики. След това даваме на този ReplicaSet a селектор които биха били използвани за съвпадение на етикет, да речем, ап до стойност, да речем, уеб сървър, сред текущо работещите подс. Ако има по-малко от тези шушулки, той ще създаде шушулки според дадения шаблон и ще добави същия етикет към тези нови шушулки. Ако има повече шушулки, отколкото е необходимо, той изтрива няколко.

Посочването на шаблон, който да действа като основа за създаване на нови шушулки, е най-ангажираната стъпка. Този шаблон няма да има име, тъй като replicaset ще създаде ново име за всеки нов създаден шушулка. Ще има етикети и можете да забележите, че същият етикет app = уеб сървър че шаблонът е избран чрез селектор параметър в спецификацията на репликата.

apiVersion: apps / v1
вид: ReplicaSet
метаданни:
име: my-replicaset
 
спецификация:
реплики: 3
селектор:
matchLabels:
приложение: уеб сървър
шаблон:
метаданни:
етикети:
приложение: уеб сървър
спецификация:
контейнери:
- име: nginx
изображение: nginx: 1.7.9
портове:
- containerPort: 80

Запазете този файл като nginx-replicaset.yaml и създайте репликата с помощта на командата:

$ kubectl create -f nginx-replicaset.ямъл

Защото преди това създадохме шушулка със същия етикет app = уеб сървър, репликата просто ще създаде още две шушулки. Можете да изброите всички шушулки с помощта на командата:

$ kubectl вземете шушулки
ИМЕ ГОТОВ СТАТУС ВЪЗСТАНОВЯВА ВЪЗРАСТ
my-replicaset-nmvt9 1/1 Работи 0 9s
my-replicaset-xf9mx 1/1 Работи 0 9s
nginx-1 1/1 Работи 0 28s

Всяка от шушулките ще има уникално име, свързано с тях. Както първият шушулка, който създадохме, имаше име nginx-1. Можете да опитате да изтриете този, като използвате командата:

$ kubectl изтриване на под nginx-1
$ kubectl вземете шушулки
 
ИМЕ ГОТОВ СТАТУС ВЪЗСТАНОВЯВА ВЪЗРАСТ
my-replicaset-nmvt9 1/1 Работи 0 1m
my-replicaset-pkn4q 1/1 Работи 0 22s
my-replicaset-xf9mx 1/1 Работи 0 1m

Ще забележите, че почти мигновено контролерът ReplicaSet създаде нова шушулка, която да замени тази, която изтрихме. По този начин се гарантира, че броят на работещите шушулки, с етикет app = уеб сървър винаги е 3, както е посочено в нашия манифест за реплика по-горе.

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

Това, което репликатите не позволяват, са актуализации. Ако е по-нова версия на приложението ви, да речем nginx: 1.8 идва заедно, ще трябва да изтриете този реплика и да създадете нов с това изображение, споменато в ямъл манифеста на репликата. Тук идеята за внедряване е полезна. Той включва идеята за реплики и се разширява, като предоставя допълнителна поддръжка за актуализиране на вашите приложения. Сега, когато се чувствате добре с репликатите, може би е добра идея да разгледате внедряванията на Kubernetes.

Препратки

  1. Създаване на шушулки
  2. Създаване на ReplicaSets
Инсталирайте най-новата стратегия за игра OpenRA на Ubuntu Linux
OpenRA е Libre / Free Real Time стратегия за игра, която пресъздава ранните игри на Westwood като класическата Command & Conquer: Red Alert. Разпредел...
Инсталирайте най-новия Dolphin Emulator за Gamecube & Wii на Linux
Dolphin Emulator ви позволява да играете избраните от вас игри Gamecube & Wii на Linux Personal Computers (PC). Като безплатно достъпен и емулатор на...
Как да използвам GameConqueror Cheat Engine в Linux
Статията обхваща ръководство за използването на GameConqueror cheat engine в Linux. Много потребители, които играят игри под Windows, често използват ...