gpt4 book ai didi

postgresql - 设置postgres环境变量运行镜像

转载 作者:行者123 更新时间:2023-12-02 21:04:02 27 4
gpt4 key购买 nike

the documentation显示,您应该在执行 docker run 时设置环境变量如下所示:

docker run --name some-postgres -e POSTGRES_PASSWORD='foo' POSTGRES_USER='bar'

这将设置 super 用户和密码来访问数据库,而不是默认值 POSTGRES_PASSWORD=''POSTGRES_USER='postgres' .

但是,我正在使用 Skaffold 来启动一个 k8s 集群,并且我正在尝试弄清楚如何做类似的事情。如何为 Kubernetes 和 Skaffold 做这件事?

最佳答案

@P Ekambaram 是正确的,但我想进一步探讨这个话题并解释“为什么和如何”。

在 Kubernetes 上传递密码时,强烈建议使用加密,您可以使用 secret 来做到这一点。

创建自己的 secret (Doc)

为了能够使用@P Ekambaram 所描述的 secret ,您需要在您的 kubernetes 集群中有一个 secret 。

要轻松创建 secret ,您还可以从生成器创建 secret ,然后将其应用于 Apiserver 上创建对象。生成器应在 kustomization.yaml 中指定一个目录里面。

例如,从文字 username=admin 生成 Secret和 password=secret ,您可以在 kustomization.yaml 中指定 secret 生成器作为

# Create a kustomization.yaml file with SecretGenerator
$ cat <<EOF >./kustomization.yaml
secretGenerator:
- name: db-user-pass
literals:
- username=admin
- password=secret
EOF

应用 kustomization 目录来创建 Secret 对象。

$ kubectl apply -k .
secret/db-user-pass-dddghtt9b5 created

使用 Secrets 作为环境变量 ( Doc)

这是一个使用环境变量中的 secret 的 pod 示例:
apiVersion: v1
kind: Pod
metadata:
name: secret-env-pod
spec:
containers:
- name: mycontainer
image: redis
env:
- name: SECRET_USERNAME
valueFrom:
secretKeyRef:
name: mysecret
key: username
- name: SECRET_PASSWORD
valueFrom:
secretKeyRef:
name: mysecret
key: password
restartPolicy: Never

来源: herehere .

关于postgresql - 设置postgres环境变量运行镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59188777/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com