Деплой микросервисов в Kubernetes. Helm
Программа
Обзор Kubernetes
В этом уроке мы познакомимся с архитектурой Kubernetes, разберем основные абстракции и манифесты для них
(описание абстракций на языке YAML), поднимем локальный кластер с помощью Minikube и потренируемся с
запуском абстракций.
Что такое Kubernetes?
В первую очередь, Kubernetes - это открытая расширяемая платформа для автоматизации процесса
развертывания, масштабирования и управления контейнеризированными приложениями.
Она позволяет в декларативном стиле описать желаемую конфигурацию сервисов и самостоятельно поддерживает их в
требуемом состоянии. Если по какой-то причине развернутый в Kubernetes контейнер падает, то система автоматически перезапускает его.
Кластер Kubernetes это группа вычислительных узлов или рабочих машин, на которых выполняются
контейнеризированные приложения.
Kubernetes из коробки предоставляет:
- Обнаружение и мониторинг сервисов
- Балансировку нагрузки
- Автоматическое развертывание и откат ресурсов
- Равномерное распределение нагрузки по имеющимся в кластере нодам согласно предъявляемым к контейнерам требованиям
- Самовосстановление в случае падения контейнеров
- Горизонтальное масштабирование в ручном или автоматическом режиме
- Выделение контейнерам IP адресов IPv4 и IPv6 и многое другое
Архитектура
- Мастер-нода
- Worker-нода
Установка kubectl и Minikube
Основные абстракции Kubernetes
- Pod
- ReplicaSet
- Deployment
- Взаимодействие компонентов Kubernetes
Заключение
В первом уроке мы узнали, что такое Kubernetes, познакомились с базовыми абстракциями, развернули локальный кластер с помощью Minikube и запустили в нем первые
Pod, ReplicaSet и Deployment. Рассмотренный нами материал - лишь первые шаги по освоению Kubernetes. Каждая из абстракций намного сложнее и многограннее, и в
дальнейших уроках мы изучим их более подробно, а также познакомимся с другими возможностями Kubernetes.
Остановите запущенный ранее кластер:
Занятие 2: Сетевое взаимодействие и хранение конфигураций
minikube stop -p cloud-java
minikube delete -p cloud-java