Python 进程结束后,如何阻止Kubernetes吊舱重新启动

Python 进程结束后,如何阻止Kubernetes吊舱重新启动,python,python-3.x,kubernetes,Python,Python 3.x,Kubernetes,我有一个python脚本,我用在Kubernetes上。 进程在python脚本上结束后,Kubernetes重新启动pod。我不想这样 我尝试从python脚本中添加一行代码,如下所示: text = input("please a key for exiting") error validating data: ValidationError(Deployment.spec.template): unknown field \"restartPolicy\&q

我有一个python脚本,我用在Kubernetes上。 进程在python脚本上结束后,Kubernetes重新启动pod。我不想这样

我尝试从python脚本中添加一行代码,如下所示:

text = input("please a key for exiting")
error validating data: ValidationError(Deployment.spec.template): unknown field \"restartPolicy\" in io.k8s.api.core.v1.PodTemplateSpec;
我得到了EOF错误,所以它取决于容器在我的Kubernetes上没有EOF配置

在那之后,我尝试使用restartPolicy:Never。但是restartPolicy是不可能永远的,我得到这样的错误:

text = input("please a key for exiting")
error validating data: ValidationError(Deployment.spec.template): unknown field \"restartPolicy\" in io.k8s.api.core.v1.PodTemplateSpec;

我怎么做这个?我只是不想重新启动这个吊舱。它可以位于python脚本或Kubernetes yaml文件上。

PodSpec有一个restartPolicy字段,其中可能包含值Always、OnFailure和Never。默认值始终为。
如果您只有一个容器可以工作,请尝试失败。

您有一个进程,由于异常而结束,您需要更正该逻辑。
并可能导致失败。如果要调试代码,则需要捕获此错误并将其记录下来。这样您的进程就不会结束,或者您可以在新线程中运行此逻辑。这将是子线程,在主线程中可以有睡眠或等待条件。

在io.k8s.api.core.v1.PodTemplateSpec中获得
未知字段\“restartPolicy \”
下面是一个示例部署,其中
restartPolicy
字段的缩进不正确

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
    restartPolicy: Never   # <-------
以下是原因的解释:


如果要运行一次性pod,请使用或直接使用pod:

apiVersion: v1
kind: Pod
metadata:
  labels:
    run: ngx
  name: ngx
spec:
  containers:
  - image: nginx
    name: ngx
  restartPolicy: Never