【发布时间】:2021-07-29 17:52:48
【问题描述】:
我正在尝试在confMap 的一行中使用来自secret 的变量。该部署正在部署一个需要通过 url 连接到MongoDB 服务器的应用程序。 url 在confMap 中,username 和password 是存储在secret 中的变量。
我被困在里面太久了,无法解决。非常感谢您的帮助。文件如下:
deployent.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: echo-deployment
labels:
app: echo-app
spec:
replicas: 1
selector:
matchLabels:
app: echo-app
template:
metadata:
labels:
app: echo-app
spec:
containers:
- name: echo-app-container
image: gcr.io/echo-project-320612/echo:v1.1
ports:
- containerPort: 3000
volumeMounts:
- mountPath: /app/config
name: echo-confmap123
env:
- name: username
valueFrom:
secretKeyRef:
name: echo-secret
key: username
- name: password
valueFrom:
secretKeyRef:
name: echo-secret
key: password
volumes:
- name: echo-confmap123
configMap:
name: echo-confmap
secret.yaml:
apiVersion: v1
kind: Secret
metadata:
name: echo-secret
type: Opaque
stringData:
username: usr123
password: 123
配置地图:
apiVersion: v1
kind: ConfigMap
metadata:
name: echo-confmap
data:
default.yaml: |
port: 3000
loglevel: info
persist: true
dbname: my-database
mongodburl: mongodb://$(username):$(password)@my-database-mongodb-0.my-database-mongodb-headless.default.svc.cluster.local,my-database-mongodb-1.my-database-mongodb-headless.default.svc.cluster.local,my-database-mongodb-2.my-database-mongodb-headless.default.svc.cluster.local:27017/my-database
错误:
[2021-07-29T17:54:41.949] [INFO] default - Starting echo app!
[2021-07-29T17:54:41.967] [INFO] default - Echo listening on port 3000!
[2021-07-29T17:54:41.989] [FATAL] default - Could not connect to MongoDB! MongoError: Authentication failed.
at Function._getError (/app/node_modules/mongodb/lib/core/auth/scram.js:125:14)
at /app/node_modules/mongodb/lib/core/auth/scram.js:175:31
at Connection.messageHandler (/app/node_modules/mongodb/lib/core/connection/connect.js:334:5)
at Connection.emit (events.js:314:20)
at processMessage (/app/node_modules/mongodb/lib/core/connection/connection.js:364:10)
at Socket.<anonymous> (/app/node_modules/mongodb/lib/core/connection/connection.js:533:15)
at Socket.emit (events.js:314:20)
at addChunk (_stream_readable.js:297:12)
at readableAddChunk (_stream_readable.js:272:9)
at Socket.Readable.push (_stream_readable.js:213:10) {
name: 'MongoNetworkError',
errorLabels: [ 'TransientTransactionError' ],
[Symbol(mongoErrorContextSymbol)]: {}
}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
【问题讨论】:
-
欢迎来到 StackOverflow!你能指定错误吗? kubectl 描述 pod
-
是的,我已将其添加到问题中。谢谢!
-
抱歉,没有成功。
-
能不能进入容器里面,去文件的路径做个猫?
标签: kubernetes deployment environment-variables configmap kubernetes-secrets