Рубрики
Uncategorized

Kubernetes Configmap и секрет объяснил

Configmap. Что такое configmap и когда он используется? 🤔 Подумайте об этом как файл свойств для YO … Теги с Куберанетами, DevOps, учебником, Docker.

Артикул Кубернеты (7 Часть серии)

Configmap.

Что такое configmap и когда он используется? 🤔 Думать об этом как о Файл свойств для вашего приложения Отказ Например, в зависимости от вашей среды приложения (DEV, INT, PROD) у вас будет другой URL-адрес базы данных или уровень регистрации. Поэтому для таких вещей вы можете использовать configmap.

самое большое преимущество Это, с файлом свойств, каждый раз, когда вы изменяете его, вы должны перестроить и перераспределить свое приложение, тогда как если вы измените конфигурацию в Configmap, Вам просто нужно перезапустить приложение POD/Container Отказ

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

Пример Configmap с конфигурацией подключения к базе данных:

apiVersion: v1
kind: ConfigMap
metadata:
    name: my-config
data:
  db-host: cluster-mysql.database 
  db-port: 3306
  db-name: my-db 

Значения в этой конфигурации могут использоваться следующим образом в спецификации POD вашего приложения:

apiVersion: v1
kind: Pod
metadata:
  name: my-app
spec:
  containers:
  - name: my-app
    image: my-app-image
    env:
    - name: DB_HOST
      valueFrom:
        configMapKeyRef:
          name: my-config
          key: db-host
    - name: DB_PORT
      valueFrom:
        configMapKeyRef:
          name: my-config
          key: db-port
    - name me: DB_NAME
      valueFrom:
        configMapKeyRef:
          name: my-config
          key: db-name

Вот пример Confighap, который создает файл конфигурации для приложения Cosmitto:

apiVersion: v1
kind: ConfigMap
metadata:
    name: mosquitto-config
data:
  mosquitto.conf |
     log_dest stout
     log_type all
     log_timestamp true
     listener 9001

В этом случае нам необходимо установить конфигурацию в виде объема в Кубейнетах:

apiVersion: v1
kind: Pod
metadata:
  name: mosquitto
spec:
  containers:
  - name: mosquitto
    image: mosquitto-image
    volumeMounts:
      - name: config-file
        mountPath: /mosquitto/config
  volumes:
  - name: config-file
    configMap:
      name: mosquitto-config

Эта карта конфигурации будет производить файл Cosquitto.conf , который затем может быть установлен в контейнер Cosquitto под /cosquitto/config каталог.

Секретарь

Секреты 🔐 также используются в этих 2 способах. Либо в качестве значения для переменных ENV или в качестве секретного файла с учетными данными или сертификатом и т. Д., установленным в POD.

Так что для лучшего сравнения, подумайте о секретах как зашифрованные конфигурации.

Пример секрета с парами ключа-значений:

apiVersion: v1
kind: Secret
metadata:
  name: my-secret
  type: Opaque
data:
  db-user: dXNlcg==
  db-password: cGFzc3dvcmQ

И вы можете использовать его так же, как Configmap в файле конфигурации вашего приложения:

apiVersion: v1
kind: Pod
metadata:
  name: my-app
spec:
  containers:
  - name: my-app
    image: my-app-image
    env:
    - name: DB_USER
      valueFrom:
        secretKeyRef:
          name: my-secret
          key: db-user
    - name: DB_PASSWORD
      valueFrom:
        secretKeyRef:
          name: my-secret
          key: db-password

Вот пример секрета, который создает файл:

apiVersion: v1
kind: Secret
metadata:
  name: my-secret
  type: Opaque
data:
  cacert.pem |
     base-64-encoded value of a PEM certificate

И опять же, как и с Configmap, вам нужно будет монтировать этот секрет как громкость в POD, чтобы использовать файл cacert.pem:

apiVersion: v1
kind: Pod
metadata:
  name: my-app
spec:
  containers:
  - name: my-app
    image: my-app-image
    volumeMounts:
      - name: certificate-file
        mountPath: /etc/secret
  volumes:
  - name: certificate-file
    configMap:
      name: my-secret

Необходимые неудобства с таким способом создания секрета для файла заключается в том, что вам придется Base64 кодировать содержимое файла, а затем вставить его в раздел данных.

Так что более легкий альтернативный способ создания секретов из файла с командой kubectl.

Как в вышеуказанном случае, получите Cacert.pem Файл и выполнить:

kubectl create secret generic my-secret --from-file=./cacert.pem

Спасибо за чтение 👩🏻💻 и нажмите на ❤️ или 🦄, если вы что-то узнали. 🤓.

Вы можете следовать за мной на Twitter и YouTube Отказ

Подробнее о компонентах Kubernetes:

Артикул Кубернеты (7 Часть серии)

Оригинал: «https://dev.to/techworld_with_nana/kubernetes-configmap-and-secret-explained-5894»