我正在尝试通过本文档使用 kubectl wait 命令检查 pod 的状态。以下是我正在尝试的命令
kubectl wait --for=condition=complete --timeout=30s -n d1 job/test-job1-oo-9j9kj
Run Code Online (Sandbox Code Playgroud)
以下是我得到的错误
Kubectl error: status.conditions accessor error: Failure is of the type string, expected map[string]interface{}
Run Code Online (Sandbox Code Playgroud)
和我的kubectl -o json output can be accessed via this github
链接。
有人可以帮我解决这个问题吗
等待kubernetes作业完成的最佳方法是什么?我注意到很多建议可以使用:
kubectl wait --for=condition=complete job/myjob
Run Code Online (Sandbox Code Playgroud)
但我认为,只有工作成功,这才行。如果失败,我必须做类似的事情:
kubectl wait --for=condition=failure job/myjob
Run Code Online (Sandbox Code Playgroud)
有没有办法使用wait来等待两个条件?如果没有,等待工作成功或失败的最佳方法是什么?
我在 Kubernetes 中配置并运行了几个 cronjobs。如何在 Kubernetes 中设置 cronjob 成功或失败电子邮件警报。
有没有办法使用 kubectl 观看作业的输出(STDOUT 和 STDERR)?我们需要等待作业完成并观察其输出,如果作业完成时出错,则应中断整个过程。
我想将作业输出(STDOUT 和 STDERR)重定向到我当前的进程 STDOUT。我想等待工作完成。如果它以错误结束,当前进程(通过 kubectl 触发作业)也应该以错误结束。我知道,kubectl wait
但据我所知,它不支持收听作业输出。
在Kubernetes或Google Container Engine中等待作业或pod完成的最佳方法是什么?
特别是,最好是通知而不是轮询状态kubectl
,但我会对一个相当有效的循环感到满意,而且裂缝之间没有任何滑动.本质上,我喜欢相当于普通的,docker run
因为直到命令终止才会阻塞,但在这种情况下我不想直接使用docker.
我看了Github问题#1899,但它看起来尚未解决.
作为我的应用程序舵图的一部分,我有一个运行数据库迁移的作业。I\xe2\x80\x99ve 用钩子注释了作业"helm.sh/hook": pre-install,pre-upgrade
以确保在部署应用程序之前运行迁移。我想使用我的应用程序部署使用的相同服务帐户和配置映射,但是在执行作业时尚未创建这些资源,从而导致以下错误:
Warning FailedCreate 8s job-controller Error creating: pods "db-migrate-" is forbidden: error looking up service account dev-platform/platform: serviceaccount "platform" not found
根据 helm 安装顺序,应在作业之前创建服务帐户和配置映射。运行作业时该行为是否无效pre-install
?:
apiVersion: batch/v1\nkind: Job\nmetadata:\n namespace: dev-platform\n name: db-migrate\n annotations:\n "helm.sh/hook": pre-install,pre-upgrade\n "helm.sh/hook-delete-policy": hook-succeeded\nspec:\n activeDeadlineSeconds: 300\n backoffLimit: 1\n template:\n spec:\n # Share platform service account IAM role.\n serviceAccountName: {{ .Release.Name }}\n securityContext:\n fsGroup: 65534 # Allow read permissions of AWS token files for IAM service account token.\n …
Run Code Online (Sandbox Code Playgroud)