【发布时间】:2019-11-21 11:37:26
【问题描述】:
是否可以在 pod 中调用 kubernetes Cron 作业。就像我必须从 pod 中运行的应用程序运行这项工作一样。
我必须在 pod 内使用 kubectl 来执行作业吗?
感谢您的帮助
【问题讨论】:
-
您可以使用 API/SDK 来代替 kubectl。这将使用 pod 可用的服务帐户功能。
标签: kubernetes
是否可以在 pod 中调用 kubernetes Cron 作业。就像我必须从 pod 中运行的应用程序运行这项工作一样。
我必须在 pod 内使用 kubectl 来执行作业吗?
感谢您的帮助
【问题讨论】:
标签: kubernetes
使用默认服务帐户访问 API 服务器。当你 创建一个pod,如果不指定service account,就是 自动分配默认服务帐户 命名空间。如果您获得了您创建的 pod 的原始 json 或 yaml (例如,kubectl get pods/ -o yaml),你可以看到 spec.serviceAccountName 字段已自动设置。
您可以使用自动挂载从 pod 内部访问 API 服务帐户凭据,如访问集群中所述。 服务帐号的 API 权限取决于授权 正在使用的插件和策略。
在 1.6+ 版本中,您可以选择不自动挂载 API 凭据以获取 通过在服务帐户上设置 automountServiceAccountToken: false 服务帐号
https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
因此,第一个任务是授予 pod 的默认服务帐户执行您需要创建的操作的权限,或者创建一个自定义服务帐户并在 pod 中使用它
使用该服务帐户以编程方式访问 API 服务器以创建您需要的作业
这可能只是一个简单的 curl POST 从 pod 内部到 API 服务器,其中包含用于创建作业的 json
How do I access the Kubernetes api from within a pod container?
您也可以使用特定于应用程序的 SDK,例如,如果您有一个 python 应用程序,您可以导入 kubernetes 并运行该作业。
【讨论】: