Сетевая модель Kubernetes

С Kubernetes достаточно просто начинать работу. Но если заглянуть внутрь, мы увидим сложную систему с множеством «подвижных» компонентов, функционирование и взаимодействие которых необходимо понимать, если вы хотите быть готовы к возможным сбоям. Одной из наиболее сложных и, возможно, наиболее критичных составляющих Kubernetes является сеть.

The Twelve-Factor App: Задачи администрирования

Выполняйте задачи администрирования/управления с помощью разовых процессов. Формирование процессов является некоторым набором процессов, которые необходимы для выполнения регулярных задач приложения (таких как обработка веб-запросов), когда оно исполняется.

The Twelve-Factor App: Журналирование (Logs)

Рассматривайте журнал как поток событий. Журналирование обеспечивает наглядное представление поведения работающего приложения. Обычно в серверной среде журнал записывается в файл на диске (“logfile”), но это только один из форматов вывода.

The Twelve-Factor App: Паритет разработки/работы приложения

Держите окружения разработки, промежуточного развёртывания (staging) и рабочего развёртывания (production) максимально похожими. Исторически существуют значительные различия между разработкой (разработчик делает живые изменения на локальном развёртывании приложения) и работой приложения (развёртывание приложения с доступом к нему конечных пользователей).

The Twelve-Factor App: Утилизируемость (Disposability)

Максимизируйте надёжность с помощью быстрого запуска и корректного завершения работы. Процессы приложения двенадцати факторов являются утилизируемыми, это означает, что они могут быть запущены и остановлены в любой момент. Это способствует стабильному и гибкому масштабированию, быстрому развёртыванию изменений кода и конфигураций и надёжности рабочего развёртывания.

The Twelve-Factor App: Параллелизм

Масштабируйте приложение с помощью процессов. Любая компьютерная программа после запуска представляет собой один или несколько работающих процессов. Исторически веб-приложения принимали различные формы выполнения процессов.

The Twelve-Factor App: Привязка портов (Port binding)

Экспортируйте сервисы через привязку портов. Иногда веб-приложения запускают внутри контейнера веб-сервера. Например, PHP-приложение может быть запущено как модуль внутри Apache HTTPD, или Java-приложение может быть запущено внутри Tomcat.

The Twelve-Factor App: Конфигурация

Сохраняйте конфигурацию в среде выполнения. Конфигурация приложения – это всё, что может меняться между развёртываниями (среда разработки, промежуточное и рабочее развёртывание).

The Twelve-Factor App: Зависимости

Явно объявляйте и изолируйте зависимости. Большинство языков программирования поставляются вместе с менеджером пакетов для распространения библиотек, таким как CPAN в Perl или Rubygems в Ruby.