9 лучших практик разработки микросервисов
источник https://t.me/itmozg/9693
источник https://t.me/itmozg/9693
Благодаря мощной системе масштабирования и управления контейнеризированными приложениями, курсы Kubernetes набирают свою популярность. Спрос на специалистов растет, а вместе с ним – и количество программ, предлагающих обучение. В крупных городах России зарплата для DevOps-инженеров может достигать 260 000 – 300 000 рублей в месяц, а для более опытных специалистов до 400 000 рублей.
Мы провели тщательный анализ, чтобы создать для вас рейтинг лучших курсов Kubernetes. Эта подборка поможет вам выбрать обучение, которое будет соответствовать вашим целям и уровню подготовки.
Инфраструктурная платформа на основе Kubernetes от Skillbox.ru — лучшая программа для DevOps-инженеров с опытом.
Kubernetes для разработчиков от Слерм — лучшее обучение по автоматизации разработки.
Инфраструктурная платформа на основе Kubernetes от OTUS.ru — лучшее сочетание теории и практики для начинающих.
Kubernetes База от Слерм — лучшая подготовка к сертификации CKA с нуля.
Kubernetes. Практикум от Level UP — лучшая отработка практики.
Kubernetes на практике от DevopsTrain — лучший вариант для опытных разработчиков.
Kubernetes от IBS Training Center — лучше обучение на реальных кейсах.
Kubernetes и Helm от PurpleSchool — лучший курс для backend-разработчиков.
Docker и Kubernetes от Softline — лучший вариант с возможностью очного обучения.
Kubernetes x Yandex.Cloud от Rebrain — лучший выбор для работы с Yandex.Cloud.
Эти обучающие программы привлекают как начинающих, так и опытных разработчиков, предоставляя им глубокие знания и практические навыки, необходимые для профессионального роста и развития карьеры.
Программа обучения Kubernetes предназначена для системных администраторов, DevOps-инженеров и разработчиков, стремящихся освоить управление сложными микросервисными архитектурами, масштабирование приложений и настройку непрерывной интеграции. Включает теоретические знания и практические задания, позволяющие на примерах изучить основы Kubernetes, работу с Helm и Vault, настройку мониторинга с Grafana, а также интеграцию CI/CD.
Стоимость: 40 902 ₽
Длительность: 1 месяц
Формат обучения: онлайн-лекции, воркшопы
Сертификат: выдается
Преимущества:
доступ к актуальным и практическим знаниям по управлению контейнеризированными приложениями;
возможность масштабировать приложения и настраивать непрерывную интеграцию;
поддержка и обратная связь от опытных кураторов-экспертов;
практические задания, приближенные к реальным проектам;
доступ к материалам навсегда.
Недостатки:
требуется базовое понимание принципов DevOps и работы с контейнерами;
интенсивный формат обучения в течение месяца, требующий полного погружения;
ограниченное время на выполнение практических заданий.
Программа обучения:
Основные понятия и архитектура
Основные объекты
Безопасность и управление доступом
Сетевая подсистема
Хранение данных
Шаблоны: Helm и его аналоги (Jsonnet, Kustomize)
HPA
Мониторинг компонентов кластера и приложений
Service mesh: знакомство с Istio и Envoy
2. Kubernetes для разработчиков | Слерм
Участники научатся разрабатывать и развертывать приложения в k8s-кластере, а также реализовывать CI/CD процессы для автоматизации разработки и развертывания. Автором курса выступает Павел Селиванов, архитектор в Yandex.Cloud с обширным опытом в DevOps.
Стоимость: 50 000 рублей
Длительность: 2 месяца
Формат обучения: онлайн-уроки с проверкой домашнего задания
Сертификат: выдается
Преимущества:
обучение у специалиста с мировым именем;
практические задания на реальных стендах;
индивидуальный подход;
доступ к курсу на 2 года.
Недостатки:
требуется базовое понимание Docker и микросервисной архитектуры;
необходимость самостоятельной работы в кластере VK Cloud Solutions.
Программа обучения:
Введение
Разработка и развертывание приложений
Работа с CI/CD
Настройка и управление кластерами
Сетевые абстракции и хранение данных
Управление конфигурациями и секретами
Мониторинг и логирование
Безопасность
Уроки для специалистов, стремящихся овладеть навыками работы с одной из ведущих систем управления контейнеризацией. Программа разработана для тех, кто хочет научиться создавать и управлять инфраструктурными платформами для разработки и эксплуатации цифровых продуктов.
Стоимость: 99 750 рублей, с возможностью ежемесячной оплаты 9 975 рублей
Длительность: 5 месяцев
Формат обучения: комбинация записанных лекций и онлайн занятий с преподавателями
Сертификат: выдается
Преимущества:
активное комьюнити для общения с преподавателями и однокурсниками;
глубокое погружение в практику с реальными задачами;
постоянный доступ к учебным материалам;
индивидуальный подход к каждому учащемуся.
Недостатки:
высокая стоимость;
интенсивность курса требует значительных временных вложений.
Программа обучения:
Основы инфраструктурных платформ
Экосистема
Глубокое погружение в детали
Практическое применение экосистемы
4. Kubernetes База | Слерм
Включает практические лабораторные работы. Акцент на фундаментальных аспектах развертывания приложений. Продвинутый модуль нацелен на системных администраторов и DevOps-специалистов, стремящихся глубже понять управление кластерами и подготовиться к экзамену CKA.
Стоимость: 150 000 рублей — тариф «База», 200 000 рублей — тариф «Мега»
Длительность: 5 часов для начинающих, 18 часов для CKA
Формат обучения: видеоуроки и практические лабораторные работы
Сертификат: выдается
Преимущества:
подходит для начинающих;
практические лабораторные работы;
актуальность и регулярное обновление содержания;
подготовка к сертификации CKA;
включает микросервисную архитектуру для практического применения.
Недостатки:
требуется предварительное знание основ IT и DevOps;
высокая стоимость;
некоторые разделы могут показаться сложными для новичков.
Программа обучения:
Введение в Docker и контейнеры
Настройка и использование миникуба
Управление микросервисами
Подготовка к экзамену CKA для продвинутого курса
5. Kubernetes. Практикум | Level UP
Автор программы — опытный DevOps-инженер с более чем 17-летним опытом в ИТ, работавший в крупных компаниях, таких как Сбербанк и Сибинтек. Рассчитан на специалистов, уже имеющих базовые знания в микросервисной архитектуре, контейнеризации приложений с использованием Docker, сетевых технологий, работы в командной строке Linux и основ мониторинга.
Стоимость: 32 990 рублей
Длительность: 1.5 месяца
Формат обучения: записи лекций и онлайн занятия с преподавателем через Zoom
Сертификат: выдается
Преимущества:
актуальность материала и практическая направленность;
возможность применять на практике полученные знания благодаря домашним заданиям;
доступ к специализированным инструментам для выполнения практических заданий;
обучение под руководством опытного DevOps-инженера.
Недостатки:
фиксированное время занятий;
отсутствие помощи в трудоустройстве после завершения курса.
Программа обучения:
Работа с Helm и создание чартов
Мониторинг и журналирование приложений
Создание и настройка авторизации через OIDC/oAuth
Разработка собственных операторов и валидаторов
Настройка и работа с service mesh
Подробное изучение архитектуры
Управление пользователями и создание собственного кластера
6. Kubernetes на практике | DevopsTrain
Практикум не только для DevOps-инженеров, но и для разработчиков, работающих с контейнеризацией и оркестрацией. Основная цель программы — предоставить участникам глубокие практические знания и навыки.
Стоимость: 10 900 рублей
Длительность: 2 недели
Формат обучения: онлайн-лекции, интерактивное общение с преподавателем
Сертификат: выдается
Преимущества:
практика с реальными заданиями и автоматической проверкой результатов;
минимальные требования к начальной подготовке участников: достаточно базовых знаний работы в терминале и понимания клиент-серверных приложений;
обучения без строгого графика, в удобном для слушателя темпе;
поддержка и обратная связь от авторов курса;
доступ к современным инструментам и платформам, включая собственную разработку DevopsTrain — утилиту Kurator.
Недостатки:
необходимость базовых знаний и навыков в области IT и работы с контейнерами для успешного освоения программы.
Программа обучения:
Установка и настройка Kubernetes кластера
Работа с Helm и создание чартов
Мониторинг и журналирование приложений в Kubernetes
Создание и настройка авторизации через OIDC/oAuth
Разработка собственных операторов и валидаторов
Настройка и работа с service mesh
Подробное изучение архитектуры Kubernetes
Управление пользователями и создание собственного кластера.
7. Kubernetes | IBS Training Center
Программа ориентирована на разработчиков, системных администраторов и DevOps-специалистов, желающих углубить свои знания в контейнеризации и оркестровке. Подготовлен экспертами IBS Training Center и предназначен для широкого круга IT-специалистов. Участники курса научатся развертыванию и управлению контейнерными приложениями, настройке сети внутри кластеров и обеспечению их безопасности.
Стоимость: 45 500 рублей
Длительность: 28 часов
Формат обучения: комбинация онлайн-лекций и практических занятий
Сертификат: выдается
Преимущества:
программа соответствует последним трендам и технологиям в области контейнеризации;
большой акцент на реальных кейсах и практических заданиях;
наличие опытных наставников и доступ к ресурсам для самостоятельного изучения.
Недостатки:
для успешного освоения курса желательно иметь базовые знания в области сетевых технологий и Linux.
Программа обучения:
Введение
Развертывание приложений
Управление кластерами и контейнерами
Настройка сети и безопасности
Мониторинг и автоматизация задач
8. Kubernetes и Helm | PurpleSchool
Комплексная программа для backend-разработчиков и системных администраторов, стремящихся освоить развертывание приложений и использование Helm charts. Авторы курса — Антон Ларичев, основатель PurpleSchool и ex-CTO с более чем 13-летним опытом в разработке, и Игорь Орлов, DevOps инженер с десятилетним стажем.
Стоимость: без наставника: 5 000 ₽, с наставником: 16 000 ₽, возможна рассрочка
Длительность: 14 часов
Формат обучения: видеолекции, тестовые задания, упражнения и домашние задания
Сертификат: выдается
Преимущества:
возможность обучения под руководством наставника;
разнообразие учебных материалов, включая видеолекции и тесты;
персонализированный подход к обучению;
гибкая система оплаты и доступность рассрочки;
возврат денег в течение 30 дней в случае недовольства курсом;
высокие рейтинги на независимых платформах.
Недостатки:
отсутствие прямого взаимодействия в формате без наставника;
необходимость базовых знаний в области Linux и Docker для максимальной эффективности обучения;
ограниченная продолжительность доступа к материалам в бюджетном варианте курса.
Программа обучения:
Понимание механики работы кластера
Написание конфигураций для выкладки приложений
Использование YML синтаксиса
Работа с Pod, Deployment, Services, ConfigMap и другими объектами
Развертывание полноценных приложений на кластере
Управление сетью и хранением данных
Шифрование секретов
Создание и управление Helm Charts
Управление релизами приложения через Helm
Работа с Helm репозиторием
9. Docker и Kubernetes | Softline
Обучение предназначено для тех, кто стремится освоить развертывание веб-приложений с использованием современных технологий. Участники узнают о Docker с нуля, изучат основы работы с контейнерами и научатся использовать Docker CLI для инспекции и отладки запущенных контейнеров. Программа также включает создание и использование CI/CD-пайплайнов с использованием Github, Travis CI и AWS.
Стоимость: 56 000 руб. – очно, 49 500 руб. – дистанционно
Длительность: 40 академических часов
Формат обучения: онлайн или очно
Сертификат: выдается
Преимущества:
понимание и использование Docker с нуля;
создание CI/CD-пайплайнов и автоматическое развертывание кода;
практический опыт работы с многоконтейнерными приложениями;
подходит для инженеров-программистов, желающих ускорить и упростить развертывание приложений.
Недостатки:
требуется базовое понимание терминала и командной строки;
не подходит для новичков.
Программа обучения:
Основы Docker
Использование Docker CLI
Создание и развертывание CI/CD-пайплайнов
Развертывание кластера
10. Kubernetes x Yandex.Cloud | Rebrain
Интенсивный курс, нацеленный на DevOps-инженеров, программистов и специалистов по инфраструктуре. Программа ориентирована на практическое освоение облачных технологий Yandex. Главной особенностью является подход, основанный на реальных задачах и кейсах, что позволяет участникам приобрести глубокие практические знания и навыки.
Стоимость: 80 000 рублей
Длительность: гибкий график
Формат обучения: онлайн с проверкой домашнего задания
Сертификат: выдается
Преимущества:
индивидуальный подход;
доступ к закрытым мастер-классам от экспертов;
оперативная обратная связь от преподавателей;
гибкость в выборе времени для занятий;
возможность включения выполненных задач в профессиональное портфолио.
Недостатки:
высокая стоимость;
необходимость иметь базовые знания в IT;
сложность материала для новичков.
Программа обучения:
Введение. Основные понятия и практическое использование CLI
Обзор архитектуры, работы с моделями и сборками
Работа с DNS и сетью. Интеграция внешних ресурсов и систем хранения
Настройка аутентификации и авторизации между компонентами
Сравнение KaaS и Self-hosted подходов. Практика и анализ
Helm: детальный анализ компонентов Charts и создание собственных Charts
Мониторинг и логирование: на что обращать внимание и как использовать
Мы также предлагаем ознакомиться с дополнительными вариантами обучения. Программы подойдут как для начинающих, так и для опытных специалистов в IT.
Безопасность в Kubernetes от Слерм. Учащиеся изучают передовые методы шифрования трафика, а также рассматривают стратегии безопасности на уровне узлов и подов, что является неотъемлемой частью создания надежных и устойчивых к внешним угрозам систем.
Kubernetes The Hard Way от Слерм. Программа акцентирует внимание на детальном изучении архитектуры, сетевых протоколов, безопасности и хранения данных.
Kubernetes от Rebrain. Программа позволяет участникам глубоко погрузиться в особенности работы с облачными сервисами и интеграцию инструментов для непрерывной интеграции и непрерывного развертывания. Обучение акцентирует внимание на практическом применении теоретических знаний, включая разбор реальных кейсов и выполнение заданий.
Kubernetes от VMware. Учащиеся изучают специфику работы с контейнерами в условиях виртуализации, включая оптимизацию ресурсов, сетевую конфигурацию и автоматизацию процессов развертывания.
Kubernetes Workshop от Микроинформ. В ходе обучения рассматриваются ключевые аспекты работы с платформой, включая создание и конфигурацию контейнеров, управление кластерами и сервисами, а также автоматизацию процессов развертывания при помощи современных инструментов и технологий. Программа включает в себя ряд практических заданий и проектов, которые позволяют участникам применять полученные знания в реальных условиях.
Бесплатные обучающие программы предоставляют возможность изучения передовых технологий без финансовых вложений, что особенно важно для начинающих специалистов и студентов. Такие программы часто включают в себя интерактивные уроки и практические задания, которые помогают быстрее освоить сложные темы.
1. Kubernetes на Русском Языке от ADV-IT
Программа предназначена для специалистов, желающих овладеть навыками управления контейнерами. Подходит как для начинающих, так и для профессионалов в области IT. Фокусируется на практическом применении знаний.
Основные характеристики:
практические задания для закрепления теоретических знаний;
подходит как для новичков, так и для опытных IT-специалистов;
сообщество пользователей и экспертов для обмена опытом и получения помощи.
2. Введение в Kubernetes от Microsoft
Обучение от Microsoft предназначено для разработчиков, системных администраторов и ИТ-специалистов. Программа охватывает ключевые аспекты работы с этим популярным оркестратором контейнеров, уделяя внимание практическим навыкам и теоретическим основам.
Основные характеристики:
подробное изучение архитектуры и компонентов;
развертывание и управление контейнерами в среде;
настройка и мониторинг кластеров для оптимизации производительности;
безопасность, включая настройку сетевых политик и управление доступом;
работа с хранилищем данных и управление томами;
практические занятия для закрепления полученных знаний.
Программа обучения предназначена для профессионалов в сфере IT, которые хотят освоить управление контейнеризированными приложениями. Она охватывает важные аспекты, предоставляет практические знания для эффективной работы с этой технологией.
Основные характеристики:
понимание и управление контейнерами;
создание и масштабирование приложений в контейнерной среде;
работа с основными компонентами, такими как pods, deployments и services;
практические занятия с реальными кейсами для закрепления материала.
4. Как правильно сделать Kubernetes от Флант
Обучение от Флант предназначено для IT-специалистов, желающих освоить управление контейнеризированными приложениями. Программа охватывает от основ до продвинутых техник управления кластерами, обеспечивая участникам глубокие знания и практические навыки.
Основные характеристики:
практические занятия с реальными кейсами;
гибкий график онлайн-уроков;
поддержка сообщества и наставников в процессе обучения;
индивидуальный подход к каждому участнику;
специальные секции для ответов на вопросы и обсуждения сложных тем.
5. Docker и Kubernetes от Русский Айтишник
Обучение предназначено для специалистов в области IT, желающих освоить технологии контейнеризации и оркестрации. Программа охватывает от основ до продвинутых аспектов работы с Docker, позволяя участникам эффективно управлять контейнерами в рамках своих проектов.
Основные характеристики:
реальные кейсы и примеры;
возможность общения с единомышленниками;
программа регулярно обновляется.
6. Managed Kubernetes Selectel от Слерм
Эта программа предназначена для специалистов IT-сферы, желающих углубить свои знания в области управления контейнерами и развертывания приложений. Обучение охватывает все аспекты работы с Managed Kubernetes, от основ до продвинутых техник.
Основные характеристики:
акцент на практику;
лекции содержат последние обновления и лучшие практики работы с Managed Kubernetes;
участники получают поддержку от опытных специалистов;
слушатели могут получить сертификат.
7. Введение в Kubernetes от Слерм
Программа предназначена для специалистов в области информационных технологий, желающих освоить основы управления контейнеризированными приложениями. Обучение охватывает все ключевые аспекты Kubernetes, предоставляя фундаментальные знания и практические навыки для работы с этой платформой.
Основные характеристики:
практические занятия по установке, настройке и управлению кластерами;
онлайн-уроки от ведущих экспертов в области контейнеризации;
возможность получения сертификата по окончании обучения.
Выбрать курсы по Kubernetes — ключевой момент в профессиональном развитии специалистов IT. Изучение этой технологии не только повышает квалификацию, но и открывает новые горизонты в области облачных технологий и автоматизации. Рассмотренные программы предлагают разнообразные подходы к обучению, которые подходят как новичкам, так и опытным разработчикам. Важно учитывать индивидуальные потребности и цели при выборе курса. Глубина погружения в материал, практическая направленность и доступность поддержки преподавателей — важные критерии.
Больше курсов по Kubernetesсмотрите в нашем каталоге.
Данный пост не претендует на полноту предоставленной информации.
Все действия выполняете на свой страх и риск.
Для понимания поста требуются минимальные знания в администрировании Linux.
Сегодня мы рассмотрим наполнение локального Docker Registry, установку кластера Kubernetes и установку Rancher для K8s. Установка Kubernetes будет производится с помощью утилиты Rancher Kubernetes Engine (RKE).
Погнали!
Данная инструкция написана для такой схемы:
Состав компонентов: Сервер установки обновлений (далее СУО) – 1 шт., Мастер нода – 3 шт., Воркер нода – 3 шт.
Начнём настройку хостов, тут все просто. На все хосты установим Docker и отключим swap:
apt install docker docker.io
# или
yum install docker docker.io
swapoff -a
nano /etc/fstab
#/swap.img none swap sw 0 0
Затем добавляем вашего текущего пользователя в группу Docker:
sudo usermod -aG docker <Имя_Вашего_пользователя>
В моём примере Docker не будет использовать авторизацию, поэтому на всех хостах создаем файл daemon.json:
nano /etc/docker/daemon.json
Со следующим содержимым:
{
"data-root": "/opt/docker-data", # В моем случае /opt это примонтированный диск
"insecure-registries" : ["<FQDN_СЕРВЕРА_УСТАНОВКИ_ОБНОВЛЕНИЙ>:5000"]
}
Включаем автозагрузку Docker и запускаем его:
systemctl enable docker
systemctl start docker
Теперь необходимо на хостах кубера создать учетную запись rke (для удобства), добавить её в группу docker и настроить доступ с СУО до хостов кубера по SSH ключу.
Теперь загружаем в локальный Docker Registry необходимые образы. Для пакетной загрузки образов можно использовать скрипт из статьи Сохранение и загрузка нескольких Docker образов.
Список образов (так же они будут использоваться в будущих статьях):
rancher/mirrored-coreos-etcd:v3.5.3
rancher/rke-tools:v0.1.80
rancher/mirrored-k8s-dns-node-cache:1.21.1
rancher/mirrored-k8s-dns-dnsmasq-nanny:1.21.1
rancher/mirrored-k8s-dns-sidecar:1.21.1
rancher/mirrored-cluster-proportional-autoscaler:1.8.5
rancher/mirrored-coredns-coredns:1.9.0
rancher/hyperkube:v1.23.6-rancher1
rancher/mirrored-coreos-flannel:v0.15.1
rancher/flannel-cni:v0.3.0-rancher6
rancher/mirrored-calico-node:v3.22.0
rancher/mirrored-calico-cni:v3.22.0
rancher/mirrored-calico-kube-controllers:v3.22.0
rancher/mirrored-calico-ctl:v3.22.0
rancher/mirrored-calico-pod2daemon-flexvol:v3.22.0
rancher/mirrored-flannelcni-flannel:v0.17.0
weaveworks/weave-kube:2.8.1
weaveworks/weave-npc:2.8.1
rancher/mirrored-pause:3.6
rancher/nginx-ingress-controller:nginx-1.2.0-rancher1
rancher/mirrored-nginx-ingress-controller-defaultbackend:1.5-rancher1
rancher/mirrored-ingress-nginx-kube-webhook-certgen:v1.1.1
rancher/mirrored-metrics-server:v0.6.1
noiro/cnideploy:5.1.1.0.1ae238a
noiro/aci-containers-host:5.1.1.0.1ae238a
noiro/opflex:5.1.1.0.1ae238a
noiro/openvswitch:5.1.1.0.1ae238a
noiro/aci-containers-controller:5.1.1.0.1ae238a
noiro/gbp-server:5.1.1.0.1ae238a
noiro/opflex-server:5.1.1.0.1ae238a
rancher/rancher-agent:v2.6.5
rancher/rancher-runtime:v2.6.5
rancher/rancher-webhook:v0.2.5
rancher/rancher:v2.6.5
rancher/webhook-receiver:v0.2.5
rancher/shell:v0.1.16
rancher/fleet:v0.3.9
rancher/gitjob:v0.1.26
rancher/fleet-agent:v0.3.9
Продолжаем настройку СУО. Установим необходимые утилиты, а именно: kubectl, rke и helm. Версии из статьи этих утилит можно взять в репозитории GitHub, папка bin.
Копируем файлы в папку /tmp на СУО и выполняем следующие команды:
cd /tmp
# Установка RKE
cp /tmp/rke_linux-amd64 /usr/local/bin/rke
chmod +x /usr/local/bin/rke
# HELM
tar -zxvf helm-v3.8.2-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm
# KUBECTL
cp /tmp/kubectl /usr/local/bin/
chmod +x /usr/local/bin/kubectl
На СУО создаем папку /opt/rke и в ней создаем файл cluster.yml со следующим содержимым:
nodes:
- address: <FQDN_кубер_мастер_1>
user: rke
role: ['controlplane', 'etcd']
- address: <FQDN_кубер_мастер_2>
user: rke
role: ['controlplane', 'etcd']
- address: <FQDN_кубер_мастер_3>
user: rke
role: ['controlplane', 'etcd']
- address: <FQDN_кубер_воркер_1>
user: rke
role: ['worker']
- address: <FQDN_кубер_воркер_2>
user: rke
role: ['worker']
- address: <FQDN_кубер_воркер_3>
user: rke
role: ['worker']
private_registries:
- url: <АДРЕС_ЛОКАЛЬНОГО_REGISTRY:ПОРТ>
is_default: true
Теперь все готово для установки k8s кластера. Выполняем следующие команды:
cd /opt/rke
rke up
После выполнения rke up в папке /opt/rke появятся два файла (cluster.rkestate и kube_config_cluster.yml). Эти файлы важны и они потребуются для дальнейшей работы с кластером. Теперь давайте проверим статус кластера:
export KUBECONFIG=/opt/rke/kube_config_cluster.yml
# получения статуса нод
kubectl get nodes
На этом установка кластера Kubernetes закончена. Теперь давайте установим Rancher.
Для установки Rancher необходимо доменное имя и SSL сертификат для данного доменного имени. Сертификат должен быть в виде двух файлов .crt и .key. Они понадобятся позже.
На СУО создаем временную папку /tmp/rancher. В эту папку копируем файл rancher-2.6.5.tgz (доступен в папке bin в GitHub). Далее выполняем следующие команды:
cd /tmp/rancher/
helm template rancher ./rancher-2.6.5.tgz --output-dir . \
--no-hooks \
--namespace cattle-system \
--set hostname=<ДОМЕННОЕ_ИМЯ_RANCHER> \
--set rancherImage=<АДРЕС_ЛОКАЛЬНОГО_REGISTRY:ПОРТ>/rancher/rancher \
--set ingress.tls.source=secret \
--set systemDefaultRegistry=<АДРЕС_ЛОКАЛЬНОГО_REGISTRY:ПОРТ> \
--set useBundledSystemChart=true
export KUBECONFIG=/opt/rke/kube_config_cluster.yml
kubectl create namespace cattle-system
kubectl -n cattle-system create secret tls tls-rancher-ingress \
--cert=tls.crt \
--key=tls.key
kubectl -n cattle-system apply -R -f ./rancher
Терминал не закрываем.
Теперь через браузер заходим по адресу https://<ДОМЕННОЕ_ИМЯ_RANCHER>
При первом входе будет выведено сообщение, что нужно ввести пароль для дальнейшей настройки. Там же будет команда которую надо выполнить на СУО (для этого мы и не закрывали терминал). Результатом выполнения команды будет временный пароль. Этот пароль и нужно ввести в веб интерфейсе.
Теперь можно задать свой пароль для учётной записи admin.
На этом настройка Rancher закончена.
Обсудить эту заметку можно в нашем Телеграм канале: https://t.me/devops_spb_ru (@devops_spb_ru)
Конкурс мемов объявляется открытым!
Выкручивайте остроумие на максимум и придумайте надпись для стикера из шаблонов ниже. Лучшие идеи войдут в стикерпак, а их авторы получат полугодовую подписку на сервис «Пакет».
Кто сделал и отправил мемас на конкурс — молодец! Результаты конкурса мы объявим уже 3 мая, поделимся лучшими шутками по мнению жюри и ссылкой на стикерпак в телеграме. Полные правила конкурса.
А пока предлагаем посмотреть видео, из которых мы сделали шаблоны для мемов. В главной роли Валентин Выгодный и «Пакет» от Х5 — сервис для выгодных покупок в «Пятёрочке» и «Перекрёстке».
Реклама ООО «Корпоративный центр ИКС 5», ИНН: 7728632689
Сегодня предлагаю разобрать следующий по списку объект Kubernetes, а именно Deployment.
Команда для создания deployment выглядит так:
kubectl create deployment DEPLOYMENT_NAME --image IMAGE_NAME
Чтобы посмотреть список созданных deployment:
kubectl get deployments
Как и у Pods, у deployments есть команда для отображения подробной информации:
kubectl describe deployments DEPLOYMENT_NAME
Для скейлинга деплоймента можно использовать такую команду:
kubectl scale deployment DEPLOYMENT_NAME --replicas NUM_OF_REPLICAS
Для проверки, что команда сработала вводим:
kubectl get pods
После скейлинга можно посмотреть параметр replica set:
kubectl get rs
Эта команда выводит информация о количестве подов, которые должны быть запущены в деплойменте.
И теперь, если вы удалите Pod, то он автоматически перезапустится. Таким образом Deployment всегда будет поддерживать количество работающих подов, которое было указано при скейлинге.
Так же можно сделать автоскейлинг:
kubectl autoscale deployment DEPLOYMENT_NAME --min=MIN_NUM_REPLICS --max=MAX_NUM_REPLICAS --cpu-percent=CPU_PERCENT_NUM
Команда для проверки:
kubectl get hpa
Deployment также можно создать с помощью YAML файла. С минимально необходимым YAML файлом вы можете ознакомиться в моем GitHub`е.
И для запуска deployment через yaml файл используется вот такая команда:
kubectl apply -f FILE_NAME.yaml
Для удаления deployment есть команда delete:
kubectl delete deployments DEPLOYMENT_NAME
Посмотреть историю обновлений:
kubectl rollout history deployment/DEPLOYMENT_NAME
Команда для обновления вот такая:
kubectl set image deployment/DEPLOYMENT_NAME CONTAINER_NAME=UPDATED_CONTAINER_NAME --record
Для просмотра статуса обновления:
kubectl rollout status deployment/DEPLOYMENT_NAME
А как откатить последнее выполненное обновление? Легко:
kubectl rollout undo deployment/DEPLOYMENT_NAME
Можно откатиться на любую ревизию:
kubectl rollout undo deployment/DEPLOYMENT_NAME --to-revision=REVISION_NUM
Как обновиться, если вместо версии вы ранее указали latest? Вот так:
kubectl rollout restart deployment/DEPLOYMENT_NAME
Обсудить эту заметку можно в нашем Телеграм канале: https://t.me/devops_spb_ru (@devops_spb_ru)
Pod – объект в котором работают один или больше Docker контейнеров
Deployment – сэт одинаковых подов, нужен для Auto scaling и для обновления Docker image, держит минимальное количество работающих подов
Service – предоставляет доступ к Deployment через: ClusterIP, NodePort, LoadBalance или ExternalName
Nodes – сервера где все это работает
Cluster – логическое объединение нодов
И сегодня мы поговорим про Pod.
kubectl run POD_NAME --image=IMAGE_NAME --port=PORT
Эта команда создаст pod с именем POD_NAME из Docker image с именем IMAGE_NAME и откроет на этом поде порт с номеров PORT. Но есть и второй вариант создания пода:
kubectl apply -f FILE_NAME.yaml
Данная команда создаст файл на основании yaml файла. С минимально необходимым yaml файлом вы можете ознакомиться в моем GitHub`е.
Для вывода списка созданных подов можно использовать следующую команду:
kubectl get pods
Как удалить Pod? Очень просто, для этого есть команда:
kubectl delete pods POD_NAME
Окей, мы создали под, что дальше? А дальше у нас есть следующие команды для работы с Pods:
kubectl describe pods POD_NAME
Данная команда выведет подробнейшую информацию о поде с именем POD_NAME. Тут вы можете увидеть имя ноды на которой запущен данный под, ip адреса, какие volume приаттачены к контейнеру и так далее.
kubectl exec POD_NAME CMD_NAME
Данная команда запускает команду CMD_NAME внутри пода POD_NAME. Для примера:
kubectl exec -it POD_NAME sh
Запустит шелл в интерактивном режиме (ключ -it).
kubectl logs POD_NAME
Данная команда выведет логи пода с именем POD_NAME.
kubectl port-forward POD_NAME LOCAL_PORT:REMOTE_PORT
Данная команда пробросит порт с вашего локального компьютера (LOCAL_PORT) на порт (REMOTE_PORT) пода с именем POD_NAME.
В следующих статьях мы посмотрим на такие объекты k8s как Deployment и Service.
Обсудить эту заметку можно в нашем Телеграм канале: https://t.me/devops_spb_ru (@devops_spb_ru)
K8s – это opensource проект разработанный Google на языке Go, изначально разрабатывался для своих же приложений. Первая версия вышла в 2014 году. Kubernetes предназначен для контейнеризированных приложений.
Прежде чем изучать Kubernetes я рекомендую ознакомиться с темой про Docker!
Основные «фишки» Kubernetes:
Автоматизация развертывания приложений
Автоматизация масштабирования приложений
Автоматизация управления приложениями
Основной компонент Kubernetes это Cluster.
Вы создаете Kubernetes Cluster состоящий из Nodes.
Nodes существуют двух типов:
Worker Node – сервер на котором запускаются и работают контейнеры.
Master Node – сервер который управляет Worker Nodes.
Когда вы запускаете команды управления, они всегда посылаются на Master Node. Напрямую с Worker Node вы не взаимодействуете.
На Kubernetes Master Node работают три главных процесса k8s:
kube-apiserver
kube-controller-manager
kube-scheduler
На Kubernetes Worker Node работают два главных процесса k8s:
kubelet
kube-proxy
Обычно в Kubernetes кластере запущена одна Master нода (две и более нод используют для высокодоступных вариантов кластера) и одна Worker нода. Это самый минимальный набор для кластера.
Service discovery and load balancing. Вы запустили один Docker контейнер в k8s кластере. K8s дает вам доступ к этому Docker контейнеру через ip адрес, через определенный порт на любой Worker через определенный порт на любой Worker ноде или через DNS имя, также если вы запустили несколько копий вашего Docker контейнера, то k8s сделает load balancing между этими контейнерами.
Storage orchestration. Вы можете присоединить любой локальный диск или диск из AWS, GCP или Azure к одному или нескольким Docker контейнерам.
Automated rollouts and rollbacks. Автоматическое обновление на новую версию Docker Image или возврат на предыдущую версию.
Automatic bin packing. Вы создаете k8s кластер, где Kubernetes может запускать Docker контейнеры. Вы указываете сколько процессоров и оперативной памяти нужно каждой копии этих контейнеров, а k8s уже сам решит на каких Worker Node их лучше запускать.
Self-healing. Вы указываете сколько копий Docker контейнеров вам нужно и если с контейнером что-то произошло (завис, просто не отвечает и т.д.), то k8s это исправляет.
Secret and configuration management. K8s позволяет вам хранить «секреты», например пароли или любую секретную информацию все ваших приложений в Docker контейнере.
На этом тезисное знакомство с кубером можно считать законченным. В следующих заметках мы будем поднимать локальный k8s кластер, создавать Docker Images и еще раз пройдемся по основным понятиям k8s.
Обсудить эту заметку можно в нашем Телеграм канале: https://t.me/devops_spb_ru (@devops_spb_ru)
Эта статья навеяна комментарием к предыдущей.
В предыдущей статье мы уже разбирали как работает обратный прокси, но повторение будет не лишним.
Обратный прокси можно в какой-то мере ассоциировать с старой телефонной станцией. Когда кто-то хочет воспользоваться телефоном, он сначала соединяется с коммутационным узлом, и общается с живым оператором, называя тому имя и адрес человека, которому нужно позвонить. После чего оператор соединяет звонящего с абонентом (при условии доступности второго).
Обратный прокси делает похожую работу, получая пользовательские запросы, и затем пересылая эти запросы на соответствующие сервера (как показано на картинке ниже).
У обратного прокси очень простая функция - он ставится перед приложением (или группой приложений), и служит посредником между пользователем и сервисом.
Как упомянуто выше, обратный прокси маршрутизирует пользовательские запросы на соответствующий сервер (при условии, конечно, что вы используете несколько серверов). На этом месте те, кто использует один сервер с одним экземпляром приложения, вполне справедливо зададутся вопросом, имеет ли вообще смысл внедрять обратный прокси-сервер. Ответ: да, смысл есть.
Обратный прокси будет полезен и в инсталляциях с одним сервером, за счёт предоставления таких своих преимуществ как: ограничение скорости, IP-фильтрация и контроль доступа, аутентификация, проверка запросов и кэширование.
Если в двух словах, то в мире Kubernetes ingress контроллер является обратным прокси (кстати именно поэтому тот же Istio в прошлой статье был упомянут в контексте перечисления вариантов обратных прокси).
Он действует по принципу обратного прокси, маршрутизируя трафик из внешней сети к целевому сервису в пределах кластера Kubernetes, и позволяя вам настроить балансировщик нагрузки HTTP и HTTPS для кластера.
Чтобы лучше понять принцип работы, давайте сделаем шаг назад и попробуем разобраться, что такое Ingress.
Kubernetes Ingress - это объект API, задача которого определять как приходящий трафик из интернета будет направляться на внутренние сервисы кластера, которые затем в свою очередь будут отправлять запросы Pod'ам. Сам по себе Ingress не имеет влияния на систему, представляя собой просто набор правил для Ingress контроллера. Для проведения аналогии можно сравнить Ingress с автомобилем, у которого снят двигатель, а Ingress контроллер с самим двигателем, то есть при наличие Ingress ресурса, без установленного контроллера, работать ничего не будет.
Ingress контроллер принимает трафик снаружи Kubernetes платформы, и распределяет его по Pod'ам внутри платформы, таким образом накладывая еще один уровень абстракции на маршрутизацию трафика. Контроллеры Ingress преобразуют конфигурации из ресурсов Ingress в правила маршрутизации, распознаваемые и реализуемые обратными прокси-серверами.
Обычно Ingress контроллеры используются для предоставления доступа к множеству сервисов через единую точку входа (DNS-имя или IP-адрес).
В частности, входные контроллеры используются для:
предоставления нескольких служб под одним DNS-именем
реализации маршрутизации на основе пути, при которой разные URL-адреса сопоставляются с разными службами
реализации маршрутизации на основе хоста, при которой разные имена хостов сопоставляются с разными службами
реализации базовой аутентификации, или других методы контроля доступа для ваших приложений.
включения ограничения скорости для ваших приложения
Если ingress контроллер делает практически ту же самую работу, что и обратный прокси (обрабатывает входящий трафик и перенаправляет на соответствующий сервер/сервис), то чем они отличаются?
Ingress контроллер - это частный случай прокси-сервера, предназначенный для работы в кластерах Kubernetes. Он находится не на границе инфраструктуры, а на границе кластера.
Доброго дня! Может кто уже сталкивался и как то решил. Зависает запуск minikube