Kubernetes надає можливість відокремлення конфігурації від коду. Це поширена практика, яка узгоджується з принципами DevOps та з хмарною архітектурою.
Якщо у вас є образ контейнера, який дозволяє окрему конфігурацію, ви можете розгортати той самий код застосунку в різних контекстах. Наприклад, ви можете запускати тести для зібраного образу, а потім запускати той самий образ у виробничому контексті. Це дає вам більше впевненості у вашому тестуванні порівняно з розгортанням застосунку одним способом для тестів та іншим у промисловій експлуатації.
Щоб дізнатися про налаштування інструмента командного рядка kubectl, прочитайте налаштування доступу до кількох кластерів.
Kubernetes надає два основні види API, які ви можете використовувати для зберігання конфігурації, готової для завантаження та використання Podʼом (або іншим компонентом): ConfigMap та Secret.
Види API спеціального призначення CertificateSigningRequest та ClusterTrustBundle також містять дані конфігурації, що стосуються деяких конкретних випадків, таких як конфігурація TLS.
Усі ці механізми конфігурації, навіть для сертифікатів, розроблені так, щоб конфігурацію можна було повторно використовувати та спільно використовувати між кількома Podʼами. Зазвичай вам не потрібно записувати конфігурацію окремо для кожного Podʼа, і ви маєте проєктувати застосунки, де це можливо, так, щоб вони могли працювати зі спільною конфігурацією.
Щоб дізнатися про використання конфігурації у ваших застосунках, прочитайте про інʼєкцію даних у застосунки.
ConfigMap — це обʼєкт API, призначений для зберігання неконфіденційних даних у вигляді пар ключ-значення. Podʼи можуть використовувати ConfigMap як змінні середовища, аргументи командного рядка чи файли конфігурації у томі.
ConfigMap дозволяє відділити конфігурацію, специфічну для середовища, від образів контейнерів, щоб ваші застосунки були легко переносимими.
Secret — це обʼєкт, який містить певний обсяг конфіденційних даних, таких як пароль, токен або ключ.
Secrets схожі на ConfigMaps, але спеціально призначені для зберігання конфіденційних даних. Прочитайте сторінку про Secrets, щоб дізнатися про переваги (та обмеження) щодо інформаційної безпеки та Secrets.
Ви також можете використовувати init-контейнер або sidecar-контейнер, щоб надати конфігурацію вашому робочому навантаженню.
Це корисно, якщо у вас уже є певний спосіб, поза межами Kubernetes, для зберігання конфігурації, ключів безпеки або іншої інформації, яку ваші контейнери мають використовувати і яка не повинна зберігатися в образах контейнерів.
Помічник конфігурації sidecar працює в тому самому Podʼі, що й контейнер застосунку, тому кожен Pod має власний sidecar. Типовий sidecar конфігурації отримує дані конфігурації через мережу Podʼа, а потім записує їх у том, який змонтовано в обидва контейнери.
Існує багато варіацій цього базового шаблону, у яких все ще є контейнер-помічник, що записує конфігурацію для споживання контейнером застосунку.
Podʼи можуть мати init-контейнери, які запускаються перед головним застосунком. На відміну від sidecar-контейнерів, init-контейнери завершуються до того, як запустяться головні контейнери Podʼа (з основним застосунком), тому конфігурація встановлюється тільки один раз.
У вас є два основні варіанти конфігурації за допомогою init-контейнерів:
За цього варіанту init-контейнер отримує конфігурацію та записує її у файл або кілька файлів, зазвичай у локальний для Podʼа том.
Це робиться за допомогою локального тому, але лише init-контейнер монтує цей том. Потім kubelet читає з цього тому перед запуском контейнера застосунку.
Прочитайте Визначення значень змінних середовища за допомогою init-контейнера, щоб дізнатися більше.
Цей розділ документації присвячений конфігурації. Однак, якщо ви виконуєте конфігурацію на рівні платформи або кластера, прочитайте сторінки адміністрування кластера та перегляньте список завдань з адміністрування кластера.
Усі наведені нижче посилання стосуються загальної концепції конфігурації та Kubernetes:
а також ви можете переглянути список форматів конфігураційних файлів у розділі довідки.
У межах цього розділу документації ви можете прочитати про: