【问题标题】:Kubernetes Cron job invocation from pod从 pod 调用 Kubernetes Cron 作业
【发布时间】:2019-11-21 11:37:26
【问题描述】:

是否可以在 pod 中调用 kubernetes Cron 作业。就像我必须从 pod 中运行的应用程序运行这项工作一样。

我必须在 pod 内使用 kubectl 来执行作业吗?

感谢您的帮助

【问题讨论】:

  • 您可以使用 API/SDK 来代替 kubectl。这将使用 pod 可用的服务帐户功能。

标签: kubernetes


【解决方案1】:

使用默认服务帐户访问 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/

  1. 因此,第一个任务是授予 pod 的默认服务帐户执行您需要创建的操作的权限,或者创建一个自定义服务帐户并在 pod 中使用它

  2. 使用该服务帐户以编程方式访问 API 服务器以创建您需要的作业

  3. 这可能只是一个简单的 curl POST 从 pod 内部到 API 服务器,其中包含用于创建作业的 json

How do I access the Kubernetes api from within a pod container?

您也可以使用特定于应用程序的 SDK,例如,如果您有一个 python 应用程序,您可以导入 kubernetes 并运行该作业。

【讨论】:

    猜你喜欢
    • 2022-07-15
    • 2021-04-09
    • 2023-03-07
    • 2018-12-14
    • 2019-03-16
    • 2021-07-17
    • 2022-01-11
    • 2020-05-24
    • 2017-05-02
    相关资源
    最近更新 更多