[英]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.