在一个pod中运行mysql时,env MYSQL_ROOT_PASSWORD按预期工作。
但是,如果在一个pod中运行带有其他容器的mysql,那么“MYSQL_ROOT_PASSWORD”似乎没有按预期工作。
尽管变量已设置到mysql容器中,但实际上在连接容器内的mysql时密码为空。
详细部署如下,
spec:
containers:
- name: ocai
image: aura/web:develop
imagePullPolicy: Always
ports:
- containerPort: 9000
- name: notebook
image: aura/all-spark-notebook:latest
imagePullPolicy: Always
ports:
- containerPort: 8889
command: ["sh", "-c", "jupyter-notebook --port=8889 --NotebookApp.token='secret' --config=/jupyter_notebook_config.py --no-browser"]
volumeMounts:
- mountPath: /data/ai_lab/ocai/
name: nb-data
resources:
requests:
memory: 4Gi
- name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: Ocai@1234
image: aura/mysql:5.7
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3306
volumeMounts:
- mountPath: "/var/lib/mysql"
name: mysql-data
resources:
requests:
memory: 2G
volumes:
- name: mysql-data
persistentVolumeClaim:
claimName: ocai-mysql-claim
- name: nb-data
persistentVolumeClaim:
claimName: ocai-nb-claim
答案 0 :(得分:3)
在部署配置yaml中,env
值仅为设置为mysql容器。因此,即使它们共享同一个pod,环境变量也只能用于mysql容器。
答案 1 :(得分:0)
问题是由持久存储引起的。
我没有正确创建pv / pvc,所以pod虽然已经开始,但没有按预期工作。
我还发现将hostPath挂载为持久存储,pod无法启动。
然后我重新创建了PV / PVC,效果很好。