我正在尝试保存Kubernetes Secret中的数据库凭据。这将通过kubernetes depoloyment.yaml的yaml文件进行选择。
这是我在Kubernetes主节点中创建Secret的方法:
kubectl create secret generic moiz-db-credentials \
--from-literal=DB_HOST=77.68.54.25 \
--from-literal=DB_USER=sa \
--from-literal=DB_PASSWORD='123456'
这是我在Kubernetes Deployment文件中调用它们的方式:
apiVersion: apps/v1
kind: Deployment
metadata:
name: munib-testing-db
labels:
app: munib-testing-db
spec:
replicas: 1
selector:
matchLabels:
app: munib-testing-db
template:
metadata:
labels:
app: munib-testing-db
spec:
containers:
- name: munib-testing-db
image: selteq2/munib-testing-db:27
ports:
- containerPort: 80
env:
- name: DB_USER
valueFrom:
secretKeyRef:
name: moiz-db-credentials
key: DB_USER
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: moiz-db-credentials
key: DB_PASSWORD
- name: DB_HOST
valueFrom:
secretKeyRef:
name: moiz-db-credentials
key: DB_HOST
imagePullSecrets:
- name: regcred
现在我有一个困惑,我应该如何在C#应用程序中调用它们。这是默认方式:
"ConnectionStrings": {
"DefaultConnection": "Server=77.68.54.25;Database=expertCustomer_live_1;User ID=sa;Password=123456;MultipleActiveResultSets=true;TrustServerCertificate=True",
}
我已经将它们更改为我创建的环境变量,但我仍然在swagger中得到这个错误:
有什么建议我做错了什么吗?
1条答案
按热度按时间js4nwp541#
部署配置在密钥
DB_PASSWORD
处获取k8s secretoiz-db-credentials
的值,并将此值作为具有密钥DB_PASSWORD
的环境变量(在您的pod内)公开。因此,如果你运行
kubectl exec -it <your_pod> /bin/sh
,然后运行env
,你会看到你的env varDB_PASSWORD
,其中的key是你的实际密码值(从secret中提取)。因此,要在C#应用程序中获取此环境变量的值,您需要执行以下操作: