Урок 11: Secrets и принцип twelve-factor
На прошлом уроке мы познакомились с ConfigMap — местом для хранения нечувствительных настроек вне образа. Но что делать с паролем базы данных или API-токеном? Это то, что должны видеть не все, и что уж точно нельзя хранить внутри кода или отправлять в Git. Именно для этого существует Secret: он очен
ConfigMap — это открытая полка, содержимое которой видят все; Secret — это запертый ящик для личных вещей. Только учтите — запереть ящик (base64) не значит сделать то, что внутри, нечитаемым, а лишь положить его туда, куда нужен ключ, чтобы попасть.
- Secret
- Объект Kubernetes для хранения чувствительных данных (паролей, токенов) отдельно от образа и кода. Хранится в base64 и защищён контролем доступа — а не шифрованием по умолчанию.
- Twelve-Factor
- Методология построения приложений. Ключевой принцип: храните всю конфигурацию в окружении, строго отдельно от кода, чтобы одна и та же сборка работала в любом окружении.
- base64
- Схема кодирования, представляющая двоичные данные в виде текста. Это не шифрование: любой может декодировать base64 обратно в исходное значение вообще без ключа.
- ConfigMap
- Объект для хранения нечувствительных настроек (ключ/значение), внедряемых в контейнер как переменные окружения или файлы. «Открытый» аналог Secret.
- Переменная окружения
- Именованное значение, доступное процессу во время выполнения. Распространённый способ внедрить конфигурацию — из ConfigMap или Secret — в приложение без изменения кода.