Привет, я играюсь с секретами Кубернетеса.Мой файл развертывания:
---
apiVersion: v1
kind: Secret
metadata:
name: my-secrets
labels:
app: my-app
data:
username: dXNlcm5hbWU=
password: cGFzc3dvcmQ=
Я могу создавать секреты и монтирую их в своих развертываниях, как показано ниже:
---
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-service
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: spring-service
labels:
app: spring-service
spec:
replicas: 1
selector:
matchLabels:
app: spring-service
template:
metadata:
labels:
app: spring-service
spec:
containers:
- name: spring-service
image: my-image:tag
imagePullPolicy: Always
ports:
- containerPort: 8080
volumeMounts:
- name: my-secret-vol
mountPath: "/app/secrets/my-secret"
readOnly: true
volumes:
- name: my-secret-vol
secret:
secretName: my-secrets
Мой вопрос: как я могу получить доступ к username
и password
Я создал секретно в приложении весенней загрузки?
Я попытался загрузить с ${my-secrets.username}
и ${username}
, но он не может найти значения.
Я также пыталсядобавление секретов в качестве переменных среды, как показано ниже в deploy.yml:
env:
- name: username
valueFrom:
secretKeyRef:
name: my-secrets
key: username
- name: password
valueFrom:
secretKeyRef:
name: my-secrets
key: password
В этом случае значения загружаются из секретов, и когда я изменяю значения секретов в сводной панели мини-куба, это не отражает изменения.
Пожалуйста, помогите мне понять, как это работает.
Я использую minikube
и docker
в качестве контейнеров