【问题标题】:Issue running helm command on a schedule按计划发出运行 helm 命令
【发布时间】:2019-11-23 02:12:09
【问题描述】:

我正在尝试使用 helm delete 删除临时 pod 和其他工件。我正在尝试运行此 helm delete 以按计划运行。这是我的独立命令,它有效

helm delete --purge $(helm ls -a -q temppods.*)

但是,如果我尝试按如下时间表运行它,我会遇到问题。

下面是 mycron.yaml 的样子:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: cronbox
spec:
  serviceAccount: cron-z
  successfulJobsHistoryLimit: 1
  schedule: "*/5 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: cronbox
            image: alpine/helm:2.9.1
            args:
            - delete
            - --purge
            - $(helm ls -a -q temppods.*)
          restartPolicy: OnFailure

我跑了

oc create -f ./mycron.yaml

这创建了 cronjob

每 5 分钟创建一个 pod,并且作为 cron 作业一部分的 helm 命令运行。

我希望删除以 temppods* 开头的工件/pod 名称。

我得到的是:

错误:pod 被禁止:用户“system:serviceacount:myproject:default”无法列出命名空间“kube-system”中的 pod:没有匹配的 RBAC 策略

然后我创建了一个服务帐户 cron-z 并授予它编辑权限。我将此 serviceAccount 添加到我的 yaml 中,认为当我的 pod 将被创建时,它将具有与之关联的服务帐户 cron-z。仍然没有运气。我看到 cron-z 没有与每 5 分钟创建一次的 pod 相关联,我仍然将 default 视为与 pod 关联的服务名称。

【问题讨论】:

  • 错误:版本名称无效,必须匹配正则表达式 ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0- 9])+$且长度不能超过53
  • 你找到答案了吗?你能提供我 RBAC 的详细信息吗

标签: openshift kubernetes-helm openshift-client-tools


【解决方案1】:

您需要有一个 helm 服务帐户才能使用 tiller 以及一个实际的 tiller 服务帐户 github.com/helm/helm/blob/master/docs/rbac.md

【讨论】:

  • 然后我创建了一个服务帐户 cron-z 并授予它编辑权限。我将此 serviceAccount 添加到我的 yaml 中,认为当我的 pod 将被创建时,它将具有与之关联的服务帐户 cron-z。仍然没有运气。我看到 cron-z 没有与每 5 分钟创建一次的 pod 相关联,我仍然将 default 视为与 pod 关联的服务名称。你能给我一个如何实现这一目标的例子吗?谢谢!! @rick rackow
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多