Python 进程结束后,如何阻止Kubernetes吊舱重新启动
我有一个python脚本,我用在Kubernetes上。 进程在python脚本上结束后,Kubernetes重新启动pod。我不想这样 我尝试从python脚本中添加一行代码,如下所示: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
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