在Kubernetes上复制命令崩溃Pod启动

时间:2018-12-13 15:18:25

标签: kubernetes command kubernetes-pod

我是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

据我所知,当映像具有命令时(例如在Tomcat映像上运行的catalina.sh),该映像将与来自kubernetes的命令发生冲突。
正确吗?
Pod启动后是否有运行命令的地方?

谢谢

1 个答案:

答案 0 :(得分:1)

不,您想要的可能是这样的:

command: ["sh","-c","cp /apps/build/v1/sample.war /usr/local/tomcat/webapps && exec /whatever/catalina.sh"]

或者您可以将cp移到initContainer中,这样就不必覆盖Tomcat容器的默认命令。