Секреты могут быть определены как объекты 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 мы используем секреты в качестве переменной среды в контроллере репликации.