首页 > 解决方案 > 在 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 启动后还有什么要运行的命令吗?

谢谢

标签: kubernetescommandkubernetes-pod

解决方案


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

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

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


推荐阅读