🐙K8S
Быстрый старт для практики
Node & Pod Узел ( NODE, физическая или виртуальная машина ) основной компонент или самой маленькой единицей называется Pod (Модуль) Pod - абстракция над контейнером (рабочая среда или слой по верх контейнера) для запуска 1 приложения или службы внутри него Контейнер - Приложение + окружение для него абстрагируемся от Doker и т.д для взаимодействия только с Kubernetes. Он предлагает готовую виртуальную сеть каждый модуль получает свой IP. После ребута контейнера будет создан новый и выдан новый IP адрес
Service & Ingress Service - перманентный IP адрес который может быть прикреплен к каждому модулю. Каждое приложение(контейнер *модуль*) будет иметь свой собственный сервис. !!!ЖИЗНЕННЫЙ ЦИКЛ SERVICE И POD НЕ СВЯЗАНЫ МЕЖДУ СОБОЙ!!!(ЕСЛИ POD УМРЕТ ЕГО IP ОСТАЁТСЯ НЕ ИЗМЕНИМ ) Внешняя служба для доступа через интернет, браузер...
взаимодействие со своим приложением при помощи защищенного протокола и нормальным отображением url необходима внутренний компонент называемый Ingres
Ingres
так что в место нашего сервиса(Service) запрос сначала отправляется в Ingres а затем перенаправляется в службу - сервис(Service)
-> тут же указывается roout
То что указано выше чистая база для минимальной работы!!!! 🔥🔥🔥🔥🔥
______________________________________________________________________________________
ConfigMap & Secrets
Например у нас есть приложения которое работает с БД. обычно Endpoint указывается либо в самом приложении либо в конфигурационном файле. но обычно это делают внутри среды встроенного в образ приложения . и если Endpoint меняется будет необходимо перестраивать все приложение и перезапускать image/
ConfigMap - выполняет внешнюю настройку нашего приложения, данный конфигурации дб или других внутренних служб которые мы используем.
Мы подключаем ConfigMap к Pod, и если в данной ситуации мы изменим Endpoint в ConfigMap то Pod просто рестартанет и подтянет новые конфигурационные элементы.
Так же мы можем хранить в ConfigMap credential для подключения к той же ДБ или топику Kafka или любы другим внешним сервисам! Но вводить в тестовый файл логины и пароли не безопасно по этому есть такой элемент называемый Secrets
Secrets - тоже самое что ConfigMap но он используется для хранения секретных данных например сертификатов или credential и храниться он с кодировкой base64.
Secrets точно также подключается к нашему модулю как ConfigMap
______________________________________________________________________________________
Хранение данных и как это работает в kubernetes обеспечивает Volumes
Volumes - подключает физическое хранилище к нашему модулю и это хранилище может храниться где угодно. (Просто внешний жесткий диск подключенный к кластеру kubernetes)
______________________________________________________________________________________
StatefulSet & Deployment
Deployment - Схема модуля приложения и указание какое количество реплик мы хотим запустить еще одна абстракция поверх модулей который упрощает взаимодействие с модулями и выполнение некоторых других конфигураций.
БД мы не можем развернуть в диплоймент тк база данных имеет состояние которое и есть её данные это означает что еслии есть несколько бд то они все будут обращаться к одному хранилищу данных, и нужен будет механизм который будет определять какая дописывает а какая читает.
StatefulSet - необходим специально для таких приложений как БД которые будут отслеживать состояние БД (приложения ) а не развёртывания
Last updated