Отказ от ответственности : Короче говоря, Long Story Series — это личный учебный опыт, когда я сталкиваюсь с разными путешествиями по развитию. Целью этих серий является суммирование и упрощение сложных концепций развития и обучение их на разных уровнях владения.
Самый важный урок, который я хочу взять из этого блога, — это понять, что такое Kubernetes? И почему мы его используем?
В эпоху МИКРО-СВОЙСТВА АРХИТЕКТУРА , приложения структурированы как набор услуг, которые являются Свободно связан , Легко поддерживается , независимо организовано и принадлежит небольшим командам. Это возможно Контейнеризация Различные услуги в рамках приложения и использование вызовов API для общения между ними.
Все это звучит великолепно, пока ваша организация не подумает о масштабирование или достижение более 90% времени на приложение. Управление парой контейнеров-это не утомительное занятие, но при размышлении о настройке, развертывании и одновременном поддержании сортов сортов контейнеров наш подход должен быть переоценен. Именно здесь Kubernetes поставляется на рисунке и автоматизирует задачи управления контейнерами.
Исходная информация:
Kubernetes: Это программное обеспечение с открытым исходным кодом, которое помогает управлять и оркестреновать контейнеры.
- Впервые он был разработан инженерами Google, а затем пожертвован в облачный фонд Native Computing Foundation (CNCF).
- Это инструмент оркестровки для развертывания, масштабирования и управления несколькими контейнерами вместе, поэтому автоматизация и улучшение процесса технического обслуживания микро-сервисов. Kubernetes Основные преимущества:
- Помощь в общении среди контейнеров
- Развернуть их правильно
- Управляйте ими внимательно
- Автоматическое масштабирование: всегда убедитесь, что имеется определенное количество копий контейнера.
- Балансировка нагрузки: распределение трафика.
- Кластер Kubernetes обычно состоит из двух основных частей:
- Master (планирует прикладные службы)
- Узлы (слушают заказы от мастера)
Теперь, когда у нас есть более широкая картина Kubernetes, и почему мы его используем, давайте погрузимся в кластерную архитектуру и узнаем о различных компонентах.
Компоненты
Мастер: Это плоскость управления (основной контроллер) кластера. Обычно пользователи общаются с мастером через Графический интерфейс приборной панели (GUI) или Интерфейс командной строки (CLI) через файлы конфигурации YAML. Ответственность магистра — управлять всеми событиями узлов, чтобы сохранить общую конфигурацию кластера стабильной и здоровой. Многочисленные компоненты Мастера как таковые:
- Kube-Apiserver: Передний конец Kubernetes, который разоблачает вызовы API и занимается услугами REST, чтобы разработчики могли общаться с кластером.
- ETCD: Управляет состоянием кластера. Попробуйте посмотреть на это как на базу данных Kubernetes. Как разработчик, вы должны найти надежный метод для резервного копирования этой информации в случае сбоя мастера.
- Kube-Scheduler: Как следует из названия, оно планирует вновь созданные стручки в узлы на основе заданных требований к ресурсам.
Kube-Controller-Manager: состоит из нескольких контроллеров, которые управляют кластером и узлами. Например:
- Контроллер репликации: Обрабатывает реплики (серия идентичных стручков)
Узел: Является частью среды выполнения Kubernetes и размещена на отдельной виртуальной машине или физической машине, чем в мастере. Узлы имеют ряд стручков внутри них, которые позволяют контейнерам бежать внутри них. Узел обязанности — отслеживать стручки и отчет обратно Мастеру. Компоненты узла состоят из:
- Стручки: Логическая коллекция контейнеров (например, контейнеры Docker ), которые должны взаимодействовать друг с другом для работы приложения. Кроме того, стручки имеют серию cgroup
,
пространство ядра,
Союзные файловые системывнутри них.
Кубелет: У каждого узла есть кубелет, который обеспечивает необходимость Podspects работают здоровыми на узле. Этот агент может затем сообщить об мастере. их другие задачи: Общайтесь с API -сервером.
- Выполните контейнеры PODS через контейнер-двигатель.
- Установите и запустите стручки и секреты.
- Выполнить проверки здоровья и отчитываться перед Master.
Podspec: это файл YAML, который описывает то, что должен иметь каждый стручок.
Приятно отметить, что кубелеты обычно используют конечную точку для общения, например TCP: 10255
Анкет
- Kube-Proxy: Позволяет сетевого трафика находить правильный узел и правый стручок внутри (узнайте больше о сети).
Я надеюсь, что к настоящему времени у вас есть высокое понимание различных компонентов Kubernete и их роль в обеспечении оркестровки.
Крутые бобы, но как мне контролировать и использовать все это?
Как специалист по DevOps, вы должны иметь возможность поговорить с этим зверями Kubernetes, настраивая определенные контроллеры Анкет Поэтому вы можете раскрутить кластер и надежно запустить контейнеры внутри.
Контроллеры
Контроллеры помогают с надежностью применения, масштабированием и балансировке нагрузки. Нам нужно понимать различные виды контроллеров в Kubernetes:
- Репликации: Гарантирует, что определенное количество стручков постоянно работает. Мы используем реплики для масштабирования и масштабирования вниз по стручкам.
- Развертывания: Обновления обновлений для стручков и повторностей. По сути, развертывание управляет репликациями и копированием управления стручками.
- Daemonsets: Обеспечивает копирование всех узлов определенного стручка. Мониторинг стручков на узлах, чтобы убедиться, что все они идентичны.
- Работа: Обычно процесс супервизора. Работы — это отдельные процессы, которые происходят один раз или периодически, такие как резервное копирование базы данных.
Услуги: Разрешить связь между набором развертывания. Услуги могут быть:
- Внутренний: IP только в кластере.
- Внешняя: конечная точка доступна из IP -адреса узла.
- Балансировщик нагрузки: выставьте приложение.
Ярлыки: Как следует из названия, это помогает нам маркировать и организовать компоненты. Вы можете искать, удалять и запускать сервисы на основе их ярлыков. Мы используем Селекторы Чтобы найти этикетки.
Селекторы: Вы можете использовать их в двух разных методах:
- Селекторы на основе равенства: (==,! =)
- Селекторы на основе наборов: (in, not, существует)
Пространства имен: Дайте аутентификацию и авторизацию разным пользователям. Чрезвычайно полезен для более крупных команд.
Поздравляю! Теперь вы знаете основные знания, необходимые для того, чтобы начать испачкать руки с помощью кода …
Следующий шаг …. код
Ресурсы
Оригинал: «https://dev.to/erfankashani/long-story-short-kubernetes-365»