kubernetes - kubernetes 部署 Pod 和 python 文件启动
问题描述
apiVersion: v1
kind: Pod
metadata:
name: test
labels:
app: test-pod
spec:
containers:
- name: testserver
image: test_server:2.5
ports:
- containerPort: 8080
- containerPort: 5100
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
volumeMounts:
- name: testserver
mountPath: /app/test/csv
# command: ["/bin/bash"]
# args: ["-c", "python /app/api/Python_Rest.py"]
- name: testdb
image: lev_test_db:1.4
ports:
- containerPort: 1433
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
volumeMounts:
- name: testdb
mountPath: /var/opt/mssql/data
volumes:
- name: testserver
hostPath:
path: /usr/testhostpath/testserver
- name: levmldb
hostPath:
path: /usr/testhostpath/testdb
如果按照我注释掉的方式进行操作,tomcat 无法正常工作,因为 python 服务器在 tomcat 成功之前正在运行。
在kubernetes环境下使用yaml文件部署tomcat容器,如果tomcat正常成功,我想运行python文件。我应该怎么办?
解决方案
你可以使用 sleep 命令来延迟 testserver 启动 更花哨的解决方案可以是
command:
- "sleep"
- "100"
lifecycle:
postStart:
exec:
command:
- "sh"
- "-c"
- |
python /app/api/Python_Rest.py
推荐阅读
- python-3.x - Tensorflow 中的 polygamma 函数要复杂吗?
- python - Selenium 页面加载超过预期的超时时间
- tmux - 如何在源文件本身中获取源文件的当前路径
- java - 如何创建自定义通知 (Android)
- numpy - 映射二维 numpy 数组的对角线
- mysql - 如何在mysql中查询文件夹1和2而不是任何其他文件夹的项目?
- python - 使用单次 INSERT/单次触发触发器在 SQL Server 表中插入多行
- visual-studio - .NET 5 中的 Microsoft.VisualStudio.TestTools.UnitTesting 支持
- python - RuntimeError:CUDA 错误:设备序号无效
- vue.js - Heroku 部署在没有本地主机运行的情况下无法工作