mongodb - 如何将 Kubernetes 配置映射和密码设置为 mongodb 环境变量
问题描述
我正在尝试设置env
mongo 的两个变量,即 -MONGO_INITDB_ROOT_USERNAME
并MONGO_INITDB_ROOT_PASSWORD
使用kubernetes
ConfigMap 和Secret,如下所示:
当我不使用配置映射和密码时,即我硬编码用户名和密码时,它可以工作,但是当我尝试用配置映射和密码替换它时,它说
“认证失败。”
我的用户名和密码是一样的,就是admin
这是yaml
这些对象的定义,有人可以帮我解决什么问题吗?
apiVersion: v1
kind: ConfigMap
metadata:
name: mongodb-username
data:
username: admin
---
apiVersion: v1
kind: Secret
metadata:
name: mongodb-password
data:
password: YWRtaW4K
type: Opaque
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mongodbtest
spec:
# serviceName: mongodbtest
replicas: 1
selector:
matchLabels:
app: mongodbtest
template:
metadata:
labels:
app: mongodbtest
selector: mongodbtest
spec:
containers:
- name: mongodbtest
image: mongo:3
# env:
# - name: MONGO_INITDB_ROOT_USERNAME
# value: admin
# - name: MONGO_INITDB_ROOT_PASSWORD
# value: admin
env:
- name: MONGO_INITDB_ROOT_USERNAME
valueFrom:
configMapKeyRef:
name: mongodb-username
key: username
- name: MONGO_INITDB_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mongodb-password
key: password
解决方案
最后我在几个小时后找到了解决方案,这不是我从 kubernetes 方面做的事情,而是我base64
编码的时候。
正确的编码方法是使用以下命令:
echo -n 'admin' | base64
这就是我的问题。
推荐阅读
- python - Tensorflow 错误创建目录失败
- c# - 查找字符串是否为空
- jhipster - Azure 资源管理器模板 - 将 jhipster .war 文件和 web.config 部署到 webapp
- javascript - 从rails下拉列表中提取对象并将值传递给javascript
- opencv - What does this subtract_gaussian_blur function that uses the GaussianBlur function in OpenCV do?
- c# - Why is NSBundle.MainBundle.GetUrlForResource returning null
- string - applying a function rowwise inside mutate(dplyr)
- python - 使用python连接位于不同网络上的两台计算机
- perl - Script does not die if there are incorrect arguments
- java - 是否可以在我的 PC 上设置外部目录(作为库)的路径?安卓