Учебники

Кубернетес — Секреты

Секреты могут быть определены как объекты Kubernetes, используемые для хранения конфиденциальных данных, таких как имя пользователя и пароли с шифрованием.

Существует множество способов создания секретов в Кубернетесе.

  • Создание из текстовых файлов.
  • Создание из файла yaml.

Создание из текстового файла

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

$ kubectl create secret generic tomcat-passwd –-from-file = ./username.txt –fromfile = ./.
password.txt

Создание из файла Yaml

apiVersion: v1
kind: Secret
metadata:
name: tomcat-pass
type: Opaque
data:
   password: <User Password>
   username: <User Name>

Создание Секрета

$ kubectl create –f Secret.yaml
secrets/tomcat-pass

Использование секретов

После того, как мы создали секреты, его можно использовать в модуле или контроллере репликации как —

  • Переменная среды
  • объем

В качестве переменной среды

Чтобы использовать секрет в качестве переменной окружения, мы будем использовать env в разделе spec файла pod yaml.

env:
- name: SECRET_USERNAME
   valueFrom:
      secretKeyRef:
         name: mysecret
         key: tomcat-pass

Как объем

spec:
   volumes:
      - name: "secretstest"
         secret:
            secretName: tomcat-pass
   containers:
      - image: tomcat:7.0
         name: awebserver
         volumeMounts:
            - mountPath: "/tmp/mysec"
            name: "secretstest"

Секретная конфигурация как переменная среды

apiVersion: v1
kind: ReplicationController
metadata:
   name: appname
spec:
replicas: replica_count
template:
   metadata:
      name: appname
   spec:
      nodeSelector:
         resource-group:
      containers:
         - name: appname
            image:
            imagePullPolicy: Always
            ports:
            - containerPort: 3000
            env: -----------------------------> 1
               - name: ENV
                  valueFrom:
                     configMapKeyRef:
                        name: appname
                        key: tomcat-secrets

В приведенном выше коде под определением env мы используем секреты в качестве переменной среды в контроллере репликации.