zei*_*sen 6 kubernetes configmap
我们最近遇到了在容器内使用环境变量的问题。
操作系统:windows 10 pro
k8s 集群:minikube
k8s 版本:1.18.3
1. 行不通的方式,虽然它是我们的首选方式
这是使用“envFrom”的 deployment.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: db
labels:
app.kubernetes.io/name: db
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: db
template:
metadata:
labels:
app.kubernetes.io/name: db
spec:
serviceAccountName: default
securityContext:
{}
containers:
- name: db
image: "postgres:9.4"
ports:
- name: http
containerPort: 5432
protocol: TCP
envFrom:
- configMapRef:
name: db-configmap
Run Code Online (Sandbox Code Playgroud)
这是 db.properties:
POSTGRES_HOST_AUTH_METHOD=trust
Run Code Online (Sandbox Code Playgroud)
第1步:
kubectl create configmap db-configmap ./db.properties
Run Code Online (Sandbox Code Playgroud)
第2步:
kebuctl apply -f ./deployment.yaml
Run Code Online (Sandbox Code Playgroud)
第 3 步:
kubectl get pod
Run Code Online (Sandbox Code Playgroud)
运行上面的命令,得到如下结果:
db-8d7f7bcb9-7l788 0/1 CrashLoopBackOff 1 9s
Run Code Online (Sandbox Code Playgroud)
这表明未注入环境变量 POSTGRES_HOST_AUTH_METHOD 。
2. 工作方式(我们不能用这种方式工作)
这是使用“env”的 deployment.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: db
labels:
app.kubernetes.io/name: db
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: db
template:
metadata:
labels:
app.kubernetes.io/name: db
spec:
serviceAccountName: default
securityContext:
{}
containers:
- name: db
image: "postgres:9.4"
ports:
- name: http
containerPort: 5432
protocol: TCP
env:
- name: POSTGRES_HOST_AUTH_METHOD
value: trust
Run Code Online (Sandbox Code Playgroud)
第1步:
kubectl apply -f ./deployment.yaml
Run Code Online (Sandbox Code Playgroud)
第2步:
kubectl get pod
Run Code Online (Sandbox Code Playgroud)
运行上面的命令,得到如下结果:
db-fc58f998d-nxgnn 1/1 Running 0 32s
Run Code Online (Sandbox Code Playgroud)
以上表示环境已注入,以便数据库启动。
在第一种情况下我做错了什么?
预先感谢您的帮助。
更新:
提供配置映射:
kubectl describe configmap db-configmap
Run Code Online (Sandbox Code Playgroud)
Name: db-configmap
Namespace: default
Labels: <none>
Annotations: <none>
Data
====
db.properties:
----
POSTGRES_HOST_AUTH_METHOD=trust
Run Code Online (Sandbox Code Playgroud)
用于为 usecase-1 创建配置映射。请使用以下命令
kubectl create configmap db-configmap --from-env-file db.properties
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1321 次 |
| 最近记录: |