我有许多秘密要传递到k8部署中,该部署变得非常冗长,下面是从redis-secrets
秘密中传入redis秘密的一个示例。
- name: REDIS_HOST
valueFrom:
secretKeyRef:
name: redis-secrets
key: REDIS_HOST
- name: REDIS_PASSWORD
valueFrom:
secretKeyRef:
name: redis-secrets
key: REDIS_PASSWORD
- name: REDIS_PORT
valueFrom:
secretKeyRef:
name: redis-secrets
key: REDIS_PORT
是否可以将redis-secrets
中的所有机密传递到部署中,而这些机密的键是env变量键?
答案 0 :(得分:6)
我没有在秘密上尝试过,但是值得一试。我在configmaps中使用过。
与env相同的级别,即.spec.containers
envFrom:
- secretRef:
name: redis-secrets
答案 1 :(得分:0)
我不确定您的特定用例,但是您可以像这样在部署中设置环境变量(显示了两个示例,一个示例中redis键名是env变量的“键值”,另一个示例中只是具有键作为redis键,值作为您期望的“键值”):
environment:
- REDIS_PORT=12345
- KEY1=REDIS_PASSWORD
- KEY2=REDIS_PORT
您的应用程序可以根据需要使用这些。它可以加载Key1 / Key2,然后从秘密存储区中查找REDIS_PORT和REDIS_PASSWORD,或者您可以直接加载REDIS_PORT并使用env变量中的端口号。