创建 k8s 秘密的正确方法?
Correct way to create a k8s secret?
我不确定我是否正确解释了容器的输出,但我在日志中看到了 sequelize 的以下输出:
Nates-MacBook-Pro:k8s natereed$ docker logs 1a3e6141d050
...
(node:36) UnhandledPromiseRejectionWarning: SequelizeConnectionError: password authentication failed for user
"postgres
"
出现用户名多了一个换行符,应该是"postgres"。数据库配置了环境变量$POSTGRESS_USERNAME(是的,我知道拼错了,是另一个作者的)。
src/config/config.ts: "username": process.env.POSTGRESS_USERNAME
我进入运行容器并检查环境变量是否设置正确:
root@backend-feed-75c4f97d6-9tp2f:/usr/src/app# echo $POSTGRESS_USERNAME
postgres
root@backend-feed-75c4f97d6-9tp2f:/usr/src/app# echo $POSTGRESS_PASSWORD
...
root@backend-feed-75c4f97d6-9tp2f:/usr/src/app# echo $POSTGRESS_DB
mydb
...
要创建密钥然后应用,我 运行:
echo "postgres" | openssl base64
(edit env-secret.yaml)
kubectl apply -f env-secret.yaml
密文内容:
apiVersion: v1
kind: Secret
metadata:
name: env-secret
type: Opaque
data:
POSTGRESS_USERNAME: cG9zdGdyZXMK
POSTGRESS_PASSWORD: ...
这不是创建k8s secret的正确方法吗?
echo "postgres"
在字符串末尾包含一个换行符,它也包含在编码的秘密中。相反,使用:
echo -n "postgres" | openssl base64
-n
标志禁止换行。
简单选项:
apiVersion: v1
kind: Secret
metadata:
name: env-secret
type: Opaque
stringData:
POSTGRESS_USERNAME: myapp
POSTGRESS_PASSWORD: supersecret
stringData
采用纯字符串而不是 base-64 编码 []byte
s.
我不确定我是否正确解释了容器的输出,但我在日志中看到了 sequelize 的以下输出:
Nates-MacBook-Pro:k8s natereed$ docker logs 1a3e6141d050
...
(node:36) UnhandledPromiseRejectionWarning: SequelizeConnectionError: password authentication failed for user
"postgres
"
出现用户名多了一个换行符,应该是"postgres"。数据库配置了环境变量$POSTGRESS_USERNAME(是的,我知道拼错了,是另一个作者的)。
src/config/config.ts: "username": process.env.POSTGRESS_USERNAME
我进入运行容器并检查环境变量是否设置正确:
root@backend-feed-75c4f97d6-9tp2f:/usr/src/app# echo $POSTGRESS_USERNAME
postgres
root@backend-feed-75c4f97d6-9tp2f:/usr/src/app# echo $POSTGRESS_PASSWORD
...
root@backend-feed-75c4f97d6-9tp2f:/usr/src/app# echo $POSTGRESS_DB
mydb
...
要创建密钥然后应用,我 运行:
echo "postgres" | openssl base64
(edit env-secret.yaml)
kubectl apply -f env-secret.yaml
密文内容:
apiVersion: v1
kind: Secret
metadata:
name: env-secret
type: Opaque
data:
POSTGRESS_USERNAME: cG9zdGdyZXMK
POSTGRESS_PASSWORD: ...
这不是创建k8s secret的正确方法吗?
echo "postgres"
在字符串末尾包含一个换行符,它也包含在编码的秘密中。相反,使用:
echo -n "postgres" | openssl base64
-n
标志禁止换行。
简单选项:
apiVersion: v1
kind: Secret
metadata:
name: env-secret
type: Opaque
stringData:
POSTGRESS_USERNAME: myapp
POSTGRESS_PASSWORD: supersecret
stringData
采用纯字符串而不是 base-64 编码 []byte
s.