kubernetes - 在 Kubernetes 上复制命令 crash pod startup
问题描述
我是 Kubernetes 的新手,我正在尝试了解这些命令。基本上我要做的是创建一个Tomcat部署,添加一个nfs,然后我将war文件复制到tomcat webapps。
但它的失败
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: webapp11-deployment
spec:
replicas: 2
template:
metadata:
labels:
app: webapp11
spec:
volumes:
- name: www-persistent-storage
persistentVolumeClaim:
claimName: claim-webapp11
containers:
- name: webapp11-pod
image: tomcat:8.0
volumeMounts:
- name: www-persistent-storage
mountPath: /apps/build
command: ["sh","-c","cp /apps/build/v1/sample.war /usr/local/tomcat/webapps"]
ports:
- containerPort: 8080
据我了解,当一个镜像有命令的时候,比如catalina.sh在Tomcat镜像上运行时,会与来自kubernetes的命令产生冲突。
那是对的吗?
在 pod 启动后还有什么要运行的命令吗?
谢谢
解决方案
不,你想要的可能是这样的:
command: ["sh","-c","cp /apps/build/v1/sample.war /usr/local/tomcat/webapps && exec /whatever/catalina.sh"]
或者您可以将其移动cp
到一个中initContainer
,这样您就不必覆盖 Tomcat 容器的默认命令。
推荐阅读
- django - 已解决:用于在用户定义的时间执行由 API 请求执行的任务的方法/方法/工具
- linux - 相同的C源码,为什么不同机器编译的大小不一样
- delphi - 在 Delphi 中,将对象转换为其父对象会占用更多内存吗?
- java - 封装有什么好处?
- python - Pyautogui For 循环跳过
- javascript - 从 Vue.js 中获取的源中获取对象的真实值
- html - 在聊天记录器周围添加边框
- sql-server - 获取 XML 中标签和属性的名称
- c - 在C中准确搜索大型二进制文件中字符串的所有位置
- visual-studio-code - 如何设置 VSCode 调试控制台前景色?