首页 > 解决方案 > 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文件。我应该怎么办?

标签: kubernetesrancherkubernetes-deployment

解决方案


你可以使用 sleep 命令来延迟 testserver 启动 更花哨的解决方案可以是

command:
  - "sleep"
  - "100"
lifecycle:
  postStart:
    exec:
      command: 
        - "sh"
        - "-c"
        - |
          python /app/api/Python_Rest.py
          

推荐阅读