Урок за Kubernetes за начинаещи: Основи, функции, Archiтекстура

Преди да започнем този урок за Kubernetes, нека научим:

Какво е Kubernetes?

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

Защо имате нужда от контейнери?

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

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

Какви задачи се изпълняват от Kubernetes?

Kubernetes е ядрото на Linux, което се използва за разпределени системи. Той ви помага да абстрахирате основния хардуер на възлите (сървърите) и предлага последователен интерфейс за приложения, които консумират споделения пул от ресурси.

Защо да използвате Kubernetes?

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

Характеристики на Kubernetes

Ето основните характеристики на Kubernetes:

  • Автоматизирано планиране
  • Способности за самолечение
  • Автоматизирани внедрявания и връщане назад
  • Хоризонтално мащабиране и балансиране на натоварването
  • Предлага последователност на средата за разработка, тестване и производство
  • Инфраструктурата е слабо свързана с всеки компонент, който може да действа като отделна единица
  • Осигурява по-висока плътност на използване на ресурсите
  • Предлага функции, готови за предприятието
  • Управление, ориентирано към приложението
  • Автоматично мащабируема инфраструктура
  • Можете да създадете предвидима инфраструктура

Основи на Kubernetes

Сега в този урок за Kubernetes ще научим някои важни основи на Kubernetes:

  • Cluster

    Това е колекция от хостове (сървъри), която ви помага да обедините техните налични ресурси. Това включва RAM, CPU, RAM, диск и техните устройства в използваем пул.

  • Майстор

    Master е колекция от компоненти, които съставят контролния панел на Kubernetes. Тези компоненти се използват за всички клъстерни решения. Той включва както планиране, така и реагиране на клъстерни събития.

  • Възел

    Това е единичен хост, който може да работи на физически или виртуална машина. Един възел трябва да изпълнява едновременно kube-proxy, minikube и kubelet, които се считат за част от клъстера.

  • Именно пространство

    Това е логически клъстер или среда. Това е широко използван метод, който се използва за определяне на обхвата на достъпа или разделяне на клъстер.

Kubernetes Archiтекстура

По-долу е подробна диаграма на Kubernetes архитектура:

Kubernetes Archiтектурна диаграма
Kubernetes Archiтектурна диаграма

Главен възел

Главният възел е първият и най-жизнен компонент, който отговаря за управлението на клъстера на Kubernetes. Това е входната точка за всички видове административни задачи. Може да има повече от един главен възел в клъстера, за да се провери устойчивостта на грешки.

Главният възел има различни компоненти като API сървър, мениджър на контролер, планировчик и ETCD. Нека ги видим всичките.

API сървър: API сървърът действа като входна точка за всички REST команди, използвани за управление на клъстера.

Scheduler

Планировчикът планира задачите към подчинения възел. Той съхранява информацията за използването на ресурсите за всеки подчинен възел. Той отговаря за разпределението на натоварването.

Също така ви помага да проследите как се използва работното натоварване на възлите на клъстера. Помага ви да поставите работното натоварване върху наличните ресурси и да приемете натоварването.

и т.н.

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

Работни/подчинени възли

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

  • Kubelet: получава конфигурацията на Pod от API сървъра и гарантира, че описаните контейнери работят и работят.
  • Docker контейнер: докер контейнер работи на всеки от работните възли, който изпълнява конфигурираните pods
  • Kube-прокси: Kube-прокси действа като балансьор на натоварването и мрежов прокси за извършване на услуга на един работен възел
  • Подове: Под е комбинация от единични или множество контейнери, които логически работят заедно на възли

Други ключови терминологии

Контролери за репликация

Контролерът за репликация е обект, който дефинира шаблон на pod. Той също така контролира параметрите за хоризонтално мащабиране на идентични реплики на Pod чрез увеличаване или намаляване на броя на работещите копия.

Набори за репликация

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

Разгръщането

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

Набори със състояние

Това е специализиран под контрол, който предлага подреденост и уникалност. Използва се главно за прецизен контрол, от който имате особена нужда по отношение на реда на внедряване, стабилна мрежа и постоянни данни.

Комплекти демони

Наборите Daemon са друга специализирана форма на под контролер, който изпълнява копие на pod на всеки възел в клъстера. Този тип pod контролер е ефективен метод за внедряване на pod, който ви позволява да извършвате поддръжка и предлага услуги за самите възли.

Kubernetes срещу Docker Swarm

Ето важни разлики между Kubernetes срещу Docker.

Параметър Докер рояк Kubernetes
Scaling Без автоматично мащабиране Автоматично мащабиране
Балансиране на натоварването Прави автоматично балансиране на натоварването Конфигурирайте ръчно вашите настройки за балансиране на натоварването
Споделяне на обем за съхранение Споделя обеми за съхранение с всеки друг контейнер Споделя обеми за съхранение между множество контейнери в една и съща Pod
Използване на инструмент за влизане и наблюдение Използвайте 3rd парти инструмент като ELK Осигурете вграден инструмент за регистриране и наблюдение.
Инсталация Лесно и бързо Сложно и отнема много време
GUI GUI не е наличен GUI е наличен
скалируемост Мащабирането е по-бързо от K8S, но силата на клъстера не е толкова стабилна Мащабирането е бавно в сравнение с Swarm, но гарантира по-силно състояние на клъстера Балансирането на натоварването изисква ръчна конфигурация на услугата
Балансиране на натоварването Осигурява вградена техника за балансиране на натоварването График на процеса за поддържане на услуги по време на актуализиране
Актуализации и връщания назад Регистриране и наблюдение на обеми от данни Прогресивни актуализации и мониторинг на здравето на услугата. Споделя се само с контейнери в същите вградени инструменти за регистриране и наблюдение на Pod.

Предимства на Kubernetes

  • Лесна организация на обслужването с подс
  • Той е разработен от Google, който внася години ценен опит в индустрията на масата
  • Най-голямата общност сред инструментите за оркестрация на контейнери
  • Предлага различни опции за съхранение, включително локални, SAN и публични облаци
  • Придържа се към принципите на неизменна инфраструктура
  • Kubernetes може да изпълнява локално голо оборудване, OpenStack, публични облаци Google, Azure, AWSИ др
  • Помага ви да избегнете проблеми със заключването на доставчика, тъй като може да използва всякакви API или услуги, специфични за доставчика, освен когато Kubernetes предоставя абстракция, напр. балансиране на натоварването и съхранение.
  • Контейнеризацията с помощта на kubernetes позволява пакетен софтуер да обслужва тези цели. Той ще позволи приложения, които трябва да бъдат пуснати и актуализирани без престой.
  • Kubernetes ви позволява да гарантирате, че тези приложения в контейнери работят където и когато пожелаете и ви помага да намерите ресурси и инструменти, които искате да работят.

Недостатъци на Kubernetes

  • Таблото за управление на Kubenetes не е толкова полезно, колкото би трябвало да бъде
  • Kubernetes е малко сложен и ненужен в среди, където цялата разработка се извършва локално.
  • Сигурността не е много ефективна.

Oбобщение

  • Контейнерът помага на организацията да извършва поддръжка и актуализиране, без да прекъсва услугите
  • Kubernetes е пример за система за управление на контейнери, разработена в платформата на Google.
  • Най-голямото предимство на използването на Kubernetes е, че може да изпълнява локален OpenStack, публични облаци Google, Azure, AWS и др.
  • Kubernetes предлага автоматизирани възможности за планиране и самолечение.
  • Cluster, master, node и namespace са важна основа на kubernetes
  • Главният възел и работният възел са важни компоненти на архитектурата на Kubernetes.
  • Контролери за репликация, набори за репликация, внедрявания, набори за състояние, набори за демони са други важни термини, използвани в Kubernetes.
  • Docker swarm не позволява автоматично мащабиране, докато Kubernetes позволява автоматично мащабиране.
  • Най-големият недостатък на Kubenetes е, че таблото му не е много полезно и ефективно