Урок за Kubernetes за начинаещи

⚡ Умно обобщение

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

  • ☸️ Дефиниция на Kubernetes: Система за управление на контейнери с отворен код от Google за клъстерни приложения.
  • 📦 Защо контейнери: Контейнерите пакетират всичко, от което се нуждае едно приложение, което позволява актуализации и поддръжка без прекъсване.
  • Основни функции: Автоматизирано планиране, самовъзстановяване, внедрявания/връщания към предишни версии, хоризонтално мащабиране и балансиране на натоварването.
  • 🧱 Основни компоненти: Cluster, главен възел (API сървър, планировчик и др.), работни възли и подове.
  • 🆚 срещу Docker Swarm: Kubernetes предлага автоматично мащабиране и вграден мониторинг; Swarm е по-лесен и по-бърз за инсталиране.
  • Предимства и недостатъци: Работи във всеки облак с голяма общност, но има сложно табло за управление и настройка.

Урок за Kubernetes за начинаещи

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

Какво е Kubernetes?

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

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

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

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

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

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

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

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

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

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

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

Основи на Kubernetes

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

Cluster

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

Майстор

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

Възел

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

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

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

Kubernetes Archiтекстура

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

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

Главен възел

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

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

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

Scheduler

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

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

и т.н.

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 предоставя abstracция, напр. балансьор на натоварването и съхранение.
  • Контейнеризацията с помощта на kubernetes позволява пакетен софтуер да обслужва тези цели. Той ще позволи приложения, които трябва да бъдат пуснати и актуализирани без престой.
  • Kubernetes ви позволява да гарантирате, че тези приложения в контейнери работят където и когато пожелаете и ви помага да намерите ресурси и инструменти, които искате да работят.

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

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

Въпроси и Отговори

Подът (pod) е най-малката разгръщаема единица в Kubernetes. Той групира един или повече контейнери, които споделят хранилище, мрежа и спецификация за това как да се изпълняват, и са планирани заедно на възел (node).

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

Да. Kubernetes е с отворен код и е безплатен под лиценза Apache 2.0. Използването му в управлявани облачни услуги като GKE, EKS или AKS обаче може да включва разходи за инфраструктура и услуги.

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

Да. Асистентите с изкуствен интелект могат да генерират YAML манифести, да отстраняват проблеми с неуспешни pod-ове, да препоръчват правилно оразмеряване и да обясняват събития в клъстера, помощ.ping екипите управляват Kubernetes по-ефективно с по-малко ръчни усилия.

Обобщете тази публикация с: