【问题标题】:Where do I submit events on failure of my custom operator?我在哪里提交自定义操作员失败的事件?
【发布时间】:2017-12-18 17:35:48
【问题描述】:

我正在研究一个 mysql 用户操作员,但我对报告任何问题的正确方法有些困惑。

计划在 CRD 上监视 MysqlUser 并在指定的 DB 中创建 Secrets 和 mysql 用户。显然,其中任何一个都可能出错,此时我需要报告错误。

status.conditions 中的一些 k8s 对象跟踪事件。还有 Event 对象,但我只见过 kubelet / controllermanager 使用的对象。

如果说,我在创建 mysql 用户时遇到问题,因为我的操作员无法与 mysql 通信,但 CRD 是有效的,它应该转到事件还是 CRD 的状态?

【问题讨论】:

  • 对您的计划感到好奇:您能否添加更多关于您计划如何观看 CRD 的详细信息?这是您反映到数据库中的秘密吗?
  • CRD 定义用户名,操作员将随机密码写入 Secret 并配置数据库,是的。现在我有用户名和数据库名称之间的 1:1 映射

标签: kubernetes kubernetes-go-client


【解决方案1】:

这听起来类似于卷插件 (kubelet) 报告的事件,例如,kubelet 无法从 NFS 服务器挂载卷,因为服务器地址无效,因此无法处理。

status.conditions 中的跟踪事件在这种情况下不太有用,因为用户通常无法控制 kubelet(或您的情况下的操作员)如何与下划线资源交互。一般来说,status.conditions 只表示对象的状态,而不是为什么它处于这种状态。

这只是我对如何做出选择的理解。不知道有没有规定。

【讨论】:

    【解决方案2】:

    CRD 还没有状态部分 (1.7)。通过事件通知非常好,这就是首先拥有它们的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-17
      • 2011-02-11
      • 1970-01-01
      相关资源
      最近更新 更多