Преди броени седмици се погрижихме да ви представим какво точно е Docker. Сега решихме, че е време да ви разкажем повече за Kubernetes - платформа с отворен код, която започнахме да използваме през изминалата година.
Какво всъщност е Kubernetes?
Това е преносима, разширяваща се платформа с отворен код за управление на работни процеси и услуги, намиращи се в контейнер, и която улеснява както декларативната конфигурация, така и автоматизацията. Разполага с голяма, бързо развиваща се екосистема и услугите, поддръжката и инструментите на Kubernetes са широко достъпни.
Как работи?
Kubernetes елиминира много от ръчните процеси, които са включени в пускането в експлоатация и мащабирането на контейнера. По този начин можете да обединявате групи от хостове, работещи с Linux контейнери, а Kubernetes ви помага ефективно и лесно да управлявате тези клъстери.
Клъстерът се състои от много виртуални или физически машини, всяка от които изпълнява специализирана функция или като master, или като node. Всеки Нод съдържа групи от един или повече контейнери, които съдържат вашите приложения, а Мастърът комуникира с Нодовете за това кога да създадете или унищожите контейнери. В същото време казва на Нодовете как да пренасочват трафика въз основа на нови подреждания на контейнерите.
Какво можете да правите с Kubernetes?
В производствена среда трябва да управлявате контейнерите, на които се изпълняват приложенията, и да се уверите, че няма време, в което не работят. Най-лесният начин да управлявате това е използвайки Kubernetes.
1. Kubernetes може да открие контейнер, използвайки DNS име или използвайки собствен IP адрес. Ако трафикът към контейнера е голям, Kubernetes може да създаде баланс и да разпредели мрежовия трафик, така че пускането в експлоатация да е стабилно.
2. Kubernetes ви позволява автоматично да монтирате система за съхранение по ваш избор като локални хранилища, обществени доставчици на облачни услуги и други.
3. Можете да опишете желаното състояние на пуснатите в експлоатация контейнери като използвате Kubernetes, който може да смени действителното състояние с желаното състояние, използвайки контролирана скорост. Например можете да автоматизирате Kubernetes да създаде нови контейнери за пускане в експлоатация на приложения, да премахне съществуващи контейнери и да прехвърли всички техни ресурси към новия контейнер.
4. Предоставяте на Kubernetes клъстер от Нодове, които да използва за изпълнение на задачите в контейнера. Можете да кажете на Kubernetes от колко CPU и памет (RAM) се нуждае всеки контейнер. Kubernetes може да събира контейнери върху Нодовете ви, за да използва най-добре ресурсите ви.
5. Kubernetes рестартира контейнерите, които спират да работят, заменя контейнери, премахва тези, които не отговарят на обособената за потребители проверка на стабилността на системата, и не ги представя на клиенти, преди да са готови за работа.
6. Kubernetes ви позволява да съхранявате и управлявате чувствителна информация, като пароли, OAuth токени и ssh ключове. Можете да пускате в експлоатация и да актуализирате скрита информация и конфигурации на приложения, без да изграждате отново подобията на контейнера и без да разкривате тайните на конфигурацията на стака с данни.
Какво обаче се случва с Docker?
Docker все още изпълнява задачите си. Когато Kubernetes насрочи Под към Нод, Kubelet-а на този Нод ще инструктира Docker да стартира посочените контейнери и след това непрекъснато ще събира информация за състоянието им с помощта на Docker, и ще събира цялата информация в Мастъра. Docker издърпва контейнерите към този Нод и ги стартира и спира, както обикновено. Разликата между двете услуги е, че, вместо администраторът да прави всичко на ръка, то се изпълнява от автоматизирана система.
И всъщност защо е по-добре да използвате Kubernetes?
Автоматизацията е ключовата част. Не вършите всички задачи на ръка и по този начин спестявате време и ускорявате работата на всички. С правилното внедряване на Kubernetes можете да организирате всички части на инфраструктурата на контейнера ви. Какво повече да иска човек?
Share on social media