Docker & k8s
Консоль и теория
Общая информация и установка
Установка Доп. ссылка Добавить пользователя, который впоследствии будет запускать контейнеры ...
Образы
Образ - контейнер только для чтения, содержащий все для запуска (минимальная ОС, приложение, зави...
Контейнеры
Основные команды Команда Доп. пар. Описание docker ps список работающих ко...
Тома (volumes)
Тома (volumes) – файлы или каталоги, смонтированные на хосте и не являющиеся частью каскадно-объе...
Сеть (networking)
Docker поставляется со следующими сетевыми драйверами в рамках библиотеки libnetwork: single-h...
Yaml формат
# - комментарии Ключ-значение first: second Обязательный пробел после : Вложенные ресурсы в ...
Архивация образов и Хранилище образов (hub)
Терминология реестр (registry или hub) – сервис, отвечающий за хранение и распространение образо...
Dockerfile
DockerFile - набор инструкций по установке и настройке контейнера. Также используется для создани...
Docker compose
Инструмент для управления несколькими контейнерами при помощи одного файла. Применение compose ...
Docker Swarm
Кластеризация приложений, упрощенный K8s. Типы Nodes (хост Docker в Swarm кластере): manager:...
Дополнительные инструменты
Контейнеры Docker Compose – создание и выполнение приложений, скомпонованных из нескольк...
Примеры
Контейнеризация приложения из git
Создаем папку app и переходим в нее. Клонируем git git clone https://github.com/sudaka/irksecre...
Запуск из консоли и простые dockerfile
Запуск bash в контейнере: docker run -i -t debian /bin/bash Удаление всех остановленных контейн...
3 образа
services: identydock: build: . #build ссылается на docker file. Либо build, либо image. ...
Postgresql
Основа инструкции на хабре Минимальный compose файл с возможностью подключиться извне, логином и...
Nginx
Создать директорию nginx_config.conf и внутри файл python_microservices server { listen 8080;...
Файловый сервер
Один из самых простых S3-совместимых серверов - minio (официальный сайт) Еще есть FreeNAS. Запус...
Mariadb
Установка клиента mariadb sudo apt install mariadb-client mysql -u user -p -h 127.0.0.1 -P 330...
k8s
Тестовый kubernetes
Гитхаб книги Интересная статья по настройке HA k8s Hard way установка Docker desktop Введен...
Сетевая подсистема
Стартовая информация Сетевой плагин выбирается во время установки кластера. Документация, сете...
Pod & containers
Pod (под) Pod это уровень абстракции. Он включает: совместное использование ресурсов управле...
Namespaces
Разделяет кластер на виртуальные кластеры. Это не Namespace ядра! По умолчанию объекты попадают в...
Deployment
Deployments наиболее популярный способ для запуска приложений без сохранения состояния. Это добав...
Services
Сервис используется для подключения подов к внешней сети. Сервис использует метки для выбора подо...
Ingress
Используется для организации внешнего взаимодействия на L7 уровне. Ingress ресурсы определяют пра...
Storages
Система хранения работает через драйверы (CSI плагины) или локально на нодах. Второй вариант неуд...
Config maps & secrets
Набор конфигураций для различных окружений. Включают переменные окружения, конфиг файлы, имена хо...
StatefulSet
Очень похожи на Deployments, но StatefulSet дополнительные функции: Предсказуемые и постоянные...
Безопасность
Авторизация и аутентификация По умолчанию аутентификация на основе сертификата, но поддерживаютс...
Job, cronjob
Job Выполнения разовой задачи. Если запуск задачи завершается с ошибкой, Job перезапускает поды ...
Helm
Helm
Один из самых популярных пакетных менеджеров для Kubernetes. Управление helm Установка helm: ...
Go templates
Элементы шаблонизации заключены в двойные фигурные скобки, остальные - статический текст. Элемент...
Пример проекта
Задача: helm чарт приложения guestbook с БД redis Создаем namespace для теста kubectl create n...