JavaRush /Java Blog /Random-TL /Sino ang Docker, Kubernetes, OpenShift at paano sila nauu...

Sino ang Docker, Kubernetes, OpenShift at paano sila nauugnay sa isa't isa?

Nai-publish sa grupo
Nagsisimula ang lahat sa packaging. Sa pag-unlad ng industriya, mayroong pangangailangan na "i-package" ang pinagsama-samang aplikasyon, halimbawa, upang mailipat ito sa server kung saan ito gagana, sa anyo kung saan binuo ito ng developer sa kanyang computer, tulad ng "packaging" dapat magsilbi bilang isang uri ng proteksyon. Inaalis nito ang mga sorpresa, tulad ng kapag gumagana ang isang application sa panahon ng pagsubok, ngunit nasira kapag inilipat sa produksyon. Gayundin, ang "packaging" ay naghihiwalay ng isang application mula sa isa pa, na matatagpuan sa parehong server, ang naturang paghihiwalay ay nagbibigay-daan sa isang application na hindi makagambala sa gawain ng isa pa (halimbawa: ang isang application ay hindi magagawang sakupin ang lahat ng RAM ng server, na iniiwan ang pangalawang aplikasyon sa kapalaran nito). Ang mga bentahe ng "packaging" na may arkitektura ng microservice ay lalong kapansin-pansin, at ito ay naiintindihan; maraming mga microservice - maraming maliliit na application na dapat makipag-usap sa isa't isa, ngunit sa parehong oras ay hindi dapat makagambala sa isa't isa. Ang isang halimbawa ay isang dibdib ng mga drawer (server), kung saan mayroong maraming iba't ibang mga drawer, at madali nating ilipat ang iba't ibang mga medyas mula sa isang drawer patungo sa isa pa, at sa parehong oras ay hindi sila maghahalo sa bawat isa o sa mga panty. Кто такие Docker, Kubernetes, OpenShift и How они между собой связаны? - 1 Ang packaging ay nilikha ng mga tool sa virtualization. Noong unang panahon, ang mga virtual machine (VM) ay ginamit bilang "packaging". Matatandaan ng mga matatanda kung paano nila na-deploy ang Windows XP sa Vista sa isang virtual machine. Ngayon VM para sa application packaging ay isang bagay ng nakaraan. Ang mundo ay nakuha na ng mga lalagyan. Dahil sila ay: mas magaan, mas produktibo at mas ligtas. Sa mas detalyado: paano naiiba ang isang lalagyan sa isang virtual machine? Кто такие Docker, Kubernetes, OpenShift и How они между собой связаны? - 2 Kailangan mong tandaan ang ilang mga pakinabang ng mga lalagyan: • mas maliit ang mga ito sa laki (kumukuha ng mas kaunting memorya sa server); • magkaroon ng access sa ibinahaging mapagkukunan ng server (RAM, oras ng pag-compute ng processor); • magkaroon ng mas mahusay na kakayahang dalhin sa ibang mga kapaligiran (mula sa pagsubok hanggang sa pang-industriya); • magbigay ng mas mataas na bilis ng paglulunsad (dahil magaan ang lalagyan, mas mabilis itong maglulunsad). Ang Docker ay ang ina ng mga lalagyan. Kapag sinabi nilang lalagyan, ang ibig nilang sabihin ay Docker. Ang Docker ay software para sa pag-automate ng deployment at pamamahala ng mga application sa mga containerized na kapaligiran. Gamit ang mga halimbawa, ang Docker ay isang cross sa pagitan ng isang online na taga-disenyo at isang 3D printer na may crane. Ibig sabihin, maaari muna siyang magdisenyo ng template (imahe) para sa isang lalagyan, mag-print (lumikha) ng lalagyan ayon sa mga ibinigay na kondisyon (larawan), at pagkatapos ay ilipat ito kung saan kinakailangan. Ang mga dockerfile ay ginagamit sa halip na mga lever. Ang proseso ng pamamahala ay simple: sumulat ka ng mga file, utos, patakbuhin ang mga ito, at tingnan kung ano ang mangyayari. Кто такие Docker, Kubernetes, OpenShift и How они между собой связаны? - 3 Unang kakilala sa Docker Docker Compose - na-upgrade na Docker Теперь давайте рассмотрим сценарий, когда необходима работа нескольких контейнеров в месте. Для этого служит утorта - Docker Compose. Docker Compose — это инструментальное средство, входящее в состав Docker. Оно предназначено для решения задач, связанных с развёртыванием проектов. Difference между Docker и Docker Compose: Docker применяется для управления отдельными контейнерами. Docker Compose используется для одновременного управления несколькими контейнерами. Этот инструмент предлагает теже возможности, что и Docker, но позволяет работать с более сложными структурами. Кто такие Docker, Kubernetes, OpenShift и How они между собой связаны? - 4 Типичный сценарий использования Docker Compose: Представьте себе, что вы являетесь разработчиком некоего веб-проекта. В этот проект входит два веб-сайта. Первый позволяет людям, занимающимся бизнесом, создавать, всего в несколько щелчков мышью, интернет-магазины. Второй нацелен на поддержку клиентов. Эти два сайта взаимодействуют с одной и той же базой данных. Ваш проект становится всё популярнее, и оказывается, что мощности serverа, на котором он работает, уже недостаточно. В результате вы решаете перевести весь проект на другую машину. Если, нечто вроде Docker Compose вы не использовали, то вам придётся переносить и перенастраивать контейнеры по одному, надеясь на то, что вы, в процессе этой работы, ничего не забудете. Если же вы используете Docker Compose, то перенос вашего проекта на новый server — это вопрос, который решается выполнением нескольких команд. Для того чтобы завершить перенос проекта на новое место, вам нужно лишь выполнить кое-Howие настройки и загрузить на новый server резервную копию базы данных. Типичный ДокерКомпоузер: Кто такие Docker, Kubernetes, OpenShift и How они между собой связаны? - 5 What тут надо запомнить: Контейнеры — это основное средство для «упаковки» приложений. Контейнерами занимается Docker, создает образы контейнеров, поднимает и перемещает контейнеры. Для одновременного управления пачкой контейнеров используется Docker Compose который входит состав Docker. Эти программы – являются свободно распространяемым ПО (халява – одним словом) Kubernetes (K8s) – автоматизация Docker И так мы развернули контейнеры, знаем, чем переносить их «пачками» с машины на машину. Но вдруг один из контейнеров упал! What делать? Кто его поднимет снова? Кто такие Docker, Kubernetes, OpenShift и How они между собой связаны? - 6 Конечно можно это сделать руками, через Docker. Но это же надо что то делать, что то писать, нужен Howой то инструмент для автоматизации. Вот здесь на сцену выходит Kubernetes (сокращенно K8s), он так же займется управлением и оркестрацией (автоматизированное управление связанными сущностями) контейнеров. Имея в распоряжении K8s не надо денно и ночно следить за контейнерами. Достаточно определить сценарий поведения, а K8s сделает все сам. Основные возможности Kubernetes 1. Обеспечивает масштабирование и управление вашей конфигурацией. 2. Вы можете описать, что вы хотите получить при развёртывании кластера, и К8s — это сделает. Например, указать количество подов , сколько памяти на них выделить, указать количество реплик(экземпляров) приложений, развернутых (в контейнерах) на подах. 3. Отвечает за поддержание системы в определенном состоянии, если что-то упало, то К8s это поднимет, согласно установленной конфигурации. What тут надо запомнить: Kubernetes – инструмент для оркестрации контейнеризированных приложений — автоматизации их развёртывания, масштабирования и координации в условиях кластера. Поддерживает основные технологии контейнеризации, включая Docker. K8s является открытым(open-source) программным обеспечением. Кто такие Docker, Kubernetes, OpenShift и How они между собой связаны? - 7 OpenShift – феррари в мире виртуализации, круто, быстро и дорого Развивая тему, дальше переходим к OpenShift. OpenShift это надстройка над Kubernetes, предлагающая дополнительные функции Он сразу же готов к использованию, его не надо долго и мучительно настраивать, можно немедленно пускать в продакшн. Смотрите сколько всяких иконок, над Kubernetes. И каждая из них делает свои крутые штуки. Кто такие Docker, Kubernetes, OpenShift и How они между собой связаны? - 8 Основные моменты OpenShift: • Это платный продукт, в отличие от K8s; • DevOps из «коробки», поддержка основных сценариев развертывания blue/green, canary; • Встроенная поддержка Jenkins; • Предоставляет удобные инструменты для администрирования и работы с кластером; • Имеет более строгую модель безопасности и встроенный мониторинг. Стоит еще раз заострить внимание, что OpenShift является платным продуктом, в отличие от Kubernetes. Difference в следующем: если мы берем голый Kubernetes, то все проблемы мы решаем сами. Если говорить об OpenShift, то это продукт компании Red Hat, которая в рамках платной поддержки решает возникающие проблемы. Подведем общие итоги: В промышленной разработке есть необходимость «упаковки» applications, этот подход особенно актуален в микросервисной архитектуре. Контейнеры — это основное средство для «упаковки» приложений. Контейнерами занимается Docker, создает образы контейнеров, поднимает и перемещает контейнеры. Для одновременного управления пачкой контейнеров используется Docker Compose который входит состав Docker. Эти программы – являются свободно распространяемым ПО. Kubernetes(K8s) – инструмент для оркестровки контейнеризированных приложений — автоматизации их развёртывания, масштабирования и координации в условиях кластера. Поддерживает основные технологии контейнеризации, включая Docker. K8s является открытым(open-source) программным обеспечением. OpenShift это надстройка над Kubernetes, предлагающая дополнительные функции. Это платный продукт, в отличие от K8s предназначенный для корпоративного использования. Предоставляет DevOps из «коробки»: поддержка основных сценариев развертывания blue/green, canary, имеет встроенную поддержку Jenkins и предоставляет удобные инструменты для администрирования и работы с кластером. Имеет более строгую модель безопасности и встроенный мониторинг. Тем, у кого чешутся руки поcodeить: Упаковать Spring Boot приложение в контейнер Как развернуть Postgres в Docker и подключить к Spring-Boot приложению Вебинар: Docker — Как работать с контейнерами? — Backend-разработка на Java
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION