Kubernetes作业吊舱已成功完成,但其中一个容器未准备就绪
我有一些奇怪的行为 运行Kubernetes作业吊舱已成功完成,但其中一个容器未准备就绪,kubernetes,Kubernetes,我有一些奇怪的行为 运行作业时,它会成功完成,但其中一个容器表示它未准备就绪(或未准备就绪): 职位名称: apiVersion: batch/v1 kind: Job metadata: name: migration-${timestamp_hhmmssddmmyy} labels: jobType: database-migration spec: backoffLimit: 0 template: spec: restartPolicy: Ne
作业
时,它会成功完成,但其中一个容器表示它未准备就绪(或未准备就绪):
职位名称:
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意味着它“能够服务请求,并且应该添加到所有匹配服务的负载平衡池中”,请参阅
在您的情况下,您不希望为请求提供服务,只需执行一次php artisan migrate
,就可以了。因此,您不必担心这种状态,重要的部分是状态:Terminated
,带有原因:Completed
和零退出代码:您的命令执行了任何操作,然后成功退出
如果命令的结果不是您预期的结果,那么您必须使用kubectl日志您的pod-c app
(其中app
是您定义的容器的名称)来调查运行此命令的容器中的日志,和/或您希望php artisan migrate命令不会发出零退出代码
...
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
...