gpt4 book ai didi

Kubernetes 作业 pod 成功完成,但其中一个容器未准备好

转载 作者:行者123 更新时间:2023-12-04 23:45:33 24 4
gpt4 key购买 nike

我有一些奇怪的行为。

job正在运行,它成功完成,但其中一个容器说它没有(或没有......)准备好:

NAMESPACE     NAME                                                 READY     STATUS      RESTARTS   AGE       IP           NODE
default **********-migration-22-20-16-29-11-2018-xnffp 1/2 Completed 0 11h 10.4.5.8 gke-******

工作yaml:
apiVersion: batch/v1
kind: Job
metadata:
name: migration-${timestamp_hhmmssddmmyy}
labels:
jobType: database-migration
spec:
backoffLimit: 0
template:
spec:
restartPolicy: Never
containers:
- name: app
image: "${appApiImage}"
imagePullPolicy: IfNotPresent
command:
- php
- artisan
- migrate
- name: cloudsql-proxy
image: gcr.io/cloudsql-docker/gce-proxy:1.11
command: ["/cloud_sql_proxy",
"-instances=${SQL_INSTANCE_NAME}=tcp:3306",
"-credential_file=/secrets/cloudsql/credentials.json"]
securityContext:
runAsUser: 2 # non-root user
allowPrivilegeEscalation: false
volumeMounts:
- name: cloudsql-instance-credentials
mountPath: /secrets/cloudsql
readOnly: true
volumes:
- name: cloudsql-instance-credentials
secret:
secretName: cloudsql-instance-credentials

这种行为的原因可能是什么?容器上没有定义就绪或活跃度探测器。

如果我在 pod 上做一个描述,相关信息是:
...
Command:
php
artisan
migrate
State: Terminated
Reason: Completed
Exit Code: 0
Started: Thu, 29 Nov 2018 22:20:18 +0000
Finished: Thu, 29 Nov 2018 22:20:19 +0000
Ready: False
Restart Count: 0
Requests:
cpu: 100m
...

最佳答案

带有 Ready 的 Pod status 表示它“能够为请求提供服务,应该添加到所有匹配服务的负载平衡池中”,参见 https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-conditions

在您的情况下,您不想处理请求,而只想执行 php artisan migrate一次,完成。所以你不必担心这个状态,重要的部分是State: TerminatedReason: Completed和零退出代码:您的命令执行任何操作然后成功退出。

如果命令的结果不是您所期望的,您必须使用 kubectl logs your-pod -c app 调查运行此命令的容器中的日志。 (其中 app 是您定义的容器的名称),和/或您会期望 php artisan migrate命令不发出零退出代码。

关于Kubernetes 作业 pod 成功完成,但其中一个容器未准备好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53554609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com