JavaRush /Java блогу /Random-KY /Docker, Kubernetes, OpenShift деген кимдер жана алар бири...
Павел
Деңгээл

Docker, Kubernetes, OpenShift деген кимдер жана алар бири-бири менен кандай байланышта?

Группада жарыяланган
Мунун баары таңгактоодон башталат. Өнөр жайды өнүктүрүүдө чогултулган тиркемени, мисалы, ал иштей турган serverге, иштеп чыгуучу аны компьютеринде чогулткан формада өткөрүп берүү үчүн "пакеттөө" зарылчылыгы бар, мисалы, "пакет" коргоонун бир түрү катары кызмат кылышы керек. Бул сюрприздерди жок кылат, мисалы, тиркеме сыноо учурунда иштеп, бирок өндүрүшкө өткөндө үзүлүп калат. Ошондой эле, “пакеттөө” бир эле serverде жайгашкан бир тиркемени экинчисинен бөлүп коёт, мындай изоляция бир тиркемеге экинчисинин ишине тоскоол болбоого мүмкүндүк берет (мисалы: бир тиркеме serverдин бардык оперативдик эс тутумун ээлей алbyte жана анын тагдырына экинчи арыз). Микросервис архитектурасы менен "пакеттөөнүн" артыкчылыктары өзгөчө байкалат жана бул түшүнүктүү, көптөгөн микросервистер бар - алар бири-бири менен байланышууга тийиш, бирок ошол эле учурда бири-бирине тоскоол болбошу керек. Мисал катары сандыкты (serverди) алсак болот, анда көптөгөн түрдүү тартмалар бар, биз ар кандай байпактарды бир тартмадан экинчисине оңой жылдыра алабыз, ошол эле учурда алар бири-бирине да, трусикаларга да аралашпайт. Docker, Kubernetes, OpenShift деген кимдер жана алар бири-бири менен кандай байланышта?  - 1 Таңгак виртуалдаштыруу куралдары менен түзүлгөн. Бир жолу виртуалдык машиналар (VM) "пакет" катары колдонулган. Карылар Windows XPди Вистада виртуалдык машинада кантип орнотушканын эстеп калышат. Азыр тиркемени таңгактоо үчүн VM өткөн нерсе. Контейнерлер дүйнөнү басып алышты. Анткени алар: жеңил, жемиштүү жана коопсуз. Кененирээк: контейнер виртуалдык машинадан эмнеси менен айырмаланат? Docker, Kubernetes, OpenShift деген кимдер жана алар бири-бири менен кандай байланышта?  - 2 Контейнерлердин кээ бир артыкчылыктарын эстен чыгарбоо керек: • алар көлөмү боюнча кичине (serverде эстутумду азыраак ээлейт); • жалпы server ресурстарына (RAM, процессордун эсептөө убактысы) мүмкүнчүлүгү бар; • башка чөйрөлөргө (сыноодон өнөр жайга чейин) жакшыраак өтүү мүмкүнчүлүгүнө ээ; • жогорку ылдамдыкты камсыз кылуу (контейнер жеңил болгондуктан, ал тезирээк ишке кирет). Докер - контейнерлердин энеси. Контейнер дегенде алар Докерди билдирет. Docker - бул контейнердик чөйрөлөрдө тиркемелерди жайгаштырууну жана башкарууну автоматташтыруу үчүн программалык камсыздоо. Мисалдарды колдонуу менен, Docker онлайн дизайнер менен кран менен 3D принтердин ортосундагы кайчылаш болуп саналат. Башкача айтканда, алгач контейнерге шаблонду (сүрөттү) долбоорлоо, берилген шарттарга (сүрөткө) ылайык контейнерди басып чыгаруу (түзүү), андан кийин керектүү жерге жылдыруу. Рычагдардын ордуна докер файлдары колдонулат. Башкаруу процесси жөнөкөй: сиз файлдарды, буйруктарды жазасыз, аларды иштетесиз жана эмне болуп жатканын көрөсүз. Docker, Kubernetes, OpenShift деген кимдер жана алар бири-бири менен кандай байланышта?  - 3 Docker Docker Compose менен биринчи таанышуу - жаңыланган Docker Эми бир жерде бир нече контейнер иштеши керек болгон сценарийди карап көрөлү. Бул үчүн колдонулган утorта Docker Compose. Docker Compose бул Docker менен камтылган курал. Бул долбоорду жайылтуу менен байланышкан маселелерди чечүү үчүн иштелип чыккан. Docker жана Docker Compose ортосундагы айырма: Docker жеке контейнерлерди башкаруу үчүн колдонулат. Docker Compose бир эле учурда бир нече контейнерди башкаруу үчүн колдонулат. Бул курал Docker сыяктуу эле мүмкүнчүлүктөрдү сунуш кылат, бирок татаал структуралар менен иштөөгө мүмкүндүк берет. Docker, Kubernetes, OpenShift деген кимдер жана алар бири-бири менен кандай байланышта?  - 4 Docker Compose колдонуунун типтүү сценарийи: Сиз веб-долбоордун иштеп чыгуучусу экениңизди элестетиңиз. Бул долбоор эки веб-сайтты камтыйт. Биринчиси бизнес адамдарына бир нече чыкылdateу менен онлайн дүкөндөрдү түзүүгө мүмкүнчүлүк берет. Экинчиси кардарларды колдоого багытталган. Бул эки сайт бир эле маалымат базасы менен иштешет. Сиздин долбоор барган сайын популярдуу болуп баратат жана ал иштеген serverдин күчү жетпейт экен. Натыйжада, сиз бүт долбоорду башка машинага жылдырууну чечесиз. Эгер сиз Docker Compose сыяктуу нерсени колдонбосоңуз, анда процессте эч нерсени унутпаңыз деп үмүттөнүп, контейнерлерди бирден көчүрүп, кайра конфигурациялашыңыз керек болот. Эгер сиз Docker Compose колдонсоңуз, анда проектиңизди жаңы serverге жылдыруу бир нече буйруктарды аткаруу менен чечиле турган маселе. Долбоорду жаңы жерге которууну аяктоо үчүн сиз жөн гана кээ бир жөндөөлөрдү жасап, маалымат базасынын резервдик көчүрмөсүн жаңы serverге жүктөшүңүз керек. Кадимки DockerComposer: Docker, Kubernetes, OpenShift деген кимдер жана алар бири-бири менен кандай байланышта?  - 5 Бул жерде эмнени эстен чыгарбашыңыз керек: Контейнерлер тиркемелерди "пакеттөө" үчүн негизги каражат болуп саналат. Докер контейнерлерди иштетет, контейнер сүрөттөрүн түзөт, контейнерлерди алып жана жылдырат. Бир эле учурда бир топ контейнерлерди башкаруу үчүн Dockerге кирген Docker Compose колдонулат. Бул программалар бекер программалык камсыздоо (freebies - бир сөз менен айтканда) Kubernetes (K8s) - Docker автоматташтыруу Ошентип, биз контейнерлерди орноттук, биз аларды машинадан машинага кантип "партияларда" өткөрүүнү билебиз. Бирок күтүлбөгөн жерден контейнерлердин бири кулап түштү! Эмне кылуу керек? Аны кайра ким көтөрөт? Docker, Kubernetes, OpenShift деген кимдер жана алар бири-бири менен кандай байланышта?  - 6 Албетте, муну Docker аркылуу кол менен кыла аласыз. Бирок сиз бир нерсе кылышыңыз керек, бир нерсе жазышыңыз керек, сизге кандайдыр бир автоматташтыруу куралы керек. Бул жерде Kubernetes (кыскартылган K8s) сүрөттөлүшкө кирет, ал ошондой эле контейнерлерди башкаруу жана башкаруу (тиешелүү жактарды автоматташтырылган башкаруу) менен алектенет. Сиздин карамагыңызда K8 менен, сиз күнү-түнү контейнерлерди көзөмөлдөөнүн кереги жок. Бул жүрүм-турум сценарийин аныктоо үчүн жетиштүү болуп саналат, жана K8s баарын өзү жасайт. Kubernetesтин негизги өзгөчөлүктөрү 1. Конфигурацияңыздын масштабдуулугун жана башкаруусун камсыздайт. 2. Кластерди жайылтууда сиз эмнени алгыңыз келгенин сүрөттөсөңүз болот жана K8s муну жасайт. Мисалы, уячалардын санын көрсөтүңүз, алар үчүн канча эстутум бөлүү керек, подколордо (контейнерлерде) жайгаштырылган тиркемелердин репликаларынын (инстанцияларынын) санын көрсөтүңүз. 3. Системаны белгилүү бир абалда кармап туруу үчүн жооп берет, эгерде бир нерсе кулап калса, анда K8s аны белгиленген конфигурацияга ылайык алып кетет. Бул жерде эмнени эстен чыгарбашыңыз керек: Kubernetes - бул контейнерлештирилген тиркемелерди уюштуруунун куралы - аларды жайгаштырууну, масштабдоону жана кластерде координациялоону автоматташтыруу. Негизги контейнерлештирүү технологияларын, анын ичинде Docker колдойт. K8s ачык булактуу программа болуп саналат. Docker, Kubernetes, OpenShift деген кимдер жана алар бири-бири менен кандай байланышта?  - 7 OpenShift - бул виртуалдаштыруу дүйнөсүндөгү Ferrari, сонун, тез жана кымбат Теманы иштеп чыгуу менен, OpenShiftке өтөбүз. OpenShift - бул Kubernetes үчүн кошумча функцияларды сунуштаган кошумча. Ал дароо колдонууга даяр, ал узак жана оор конфигурацияны талап кылbyte жана дароо өндүрүшкө киргизorши мүмкүн. Караңызчы, Кубернетестин үстүндө канча түрдүү иконалар бар. Жана алардын ар бири өзүнүн сонун нерселерди жасайт. Docker, Kubernetes, OpenShift деген кимдер жана алар бири-бири менен кандай байланышта?  - 8 OpenShift баса белгилейт: • Бул K8s айырмаланып, акы төлөнүүчү продукт болуп саналат; • кутудан чыккан DevOps, негизги көк/жашыл, канарларды жайылтуу сценарийлерин колдоо; • Камтылган Jenkins колдоосу; • Администрациялоо жана кластер менен иштөө үчүн ыңгайлуу инструменттерди берет; • Бир кыйла катуу коопсуздук модели жана камтылган мониторинг бар. OpenShift Kubernetesтен айырмаланып, акы төлөнүүчү продукт экенин дагы бир жолу баса белгилеп кетүү керек. Айырмасы мына ушунда: эгерде биз жылаңач Кубернеттерди алсак, анда бардык маселелерди өзүбүз чечебиз. Эгерде OpenShift жөнүндө сөз кыла турган болсок, ал акы төлөнүүчү колдоонун бир бөлүгү катары пайда болгон көйгөйлөрдү чечкен Red Hat продуктусу. Жыйынтыктап көрөлү: Өнөр жайды өнүктүрүүдө тиркемени “пакеттөө” зарылчылыгы бар, бул ыкма микросервис архитектурасында өзгөчө актуалдуу. Контейнерлер таңгактоочу колдонмолордун негизги каражаты болуп саналат. Докер контейнерлерди иштетет, контейнер сүрөттөрүн түзөт, контейнерлерди алып жана жылдырат. Бир эле учурда бир топ контейнерлерди башкаруу үчүн Dockerге кирген Docker Compose колдонулат. Бул программалар бекер программалык камсыздоо болуп саналат. Kubernetes(K8s) контейнерлештирилген тиркемелерди уюштуруунун куралы - аларды жайгаштырууну, масштабдоону жана кластерде координациялоону автоматташтыруу. Негизги контейнерлештирүү технологияларын, анын ичинде Docker колдойт. K8s ачык булактуу программа болуп саналат. OpenShift - бул кошумча функцияларды сунуш кылган Kubernetes кошумчасы. Бул K8ден айырмаланып, корпоративдик колдонууга арналган акы төлөнүүчү продукт. DevOps'ту кутудан чыгарат: көк/жашыл, канареянын негизги жайылтуу сценарийлерин колдоо, Дженкинс үчүн орнотулган колдоого ээ жана кластерди башкаруу жана иштөө үчүн ыңгайлуу куралдар менен камсыз кылат. Ал катуураак коопсуздук моделине жана орнотулган мониторингге ээ. Кодду каалап жаткандар үчүн: Spring Boot тиркемесин контейнерге топтоо Докерде Postgresти кантип жайгаштыруу жана Spring-Boot тиркемесине туташуу Вебинар: Докер - Контейнерлер менен кантип иштөө керек? — Java'да бэкэндди иштеп чыгуу
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION