簡體   English   中英

在 k8s 上運行 python 文件

[英]run python file on k8s

我寫了一個簡單的 python 文件,用 NumPy 實現任務。

import numpy as np

a = np.arange(0,5, dtype=int)
print(a)

現在,我想在 k8s 中運行它。 我寫了對應的Dockerfile

FROM python:3.7

WORKDIR /app
COPY . .
RUN pip install -r requirements.txt

EXPOSE 5000

CMD ["python", "test.py"]

然后我為部署編寫了一個 yaml 文件:

apiVersion: v1
kind: Pod
metadata:
  name: np-test
spec:
  containers:
    - name: client-np
      image: <image-name-on-DockerHub>
      ports:
        - containerPort: 5000

但是,該 pod 未運行,其狀態為 CrashLoopBackOff。 我不知道為什么它不起作用。

CrashLoopBackOff 告訴 Pod 在啟動后立即崩潰。 Kubernetes 嘗試再次啟動 pod,但 pod 再次崩潰,這會進入循環。

正如@larsks 建議的那樣,您將獲得 CrashLoopBackOff ,因為 pod 立即退出。 您可以通過在代碼末尾添加 sleep 來避免這種情況,但通常 Pod 旨在實現長時間運行的進程。 一個Job更適合你期望退出的東西

Job 創建一個或多個 Pod 並將繼續重試 Pod 的執行,直到指定數量的 Pod 成功終止。 當 pod 成功完成時,作業會跟蹤成功完成。 當達到指定的成功完成次數時,任務(即 Job)就完成了。 刪除作業將清理它創建的 Pod。 暫停作業將刪除其活動的 Pod,直到作業再次恢復。

您還可以使用 Job 並行運行多個 Pod。

要修復 kubernetes CrashLoopbackoff 錯誤,請參閱此鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM