如果我的自定义操作员失败,我在哪里提交活动?

时间:2017-07-13 19:01:15

标签: kubernetes kubernetes-go-client

我正在为一个mysql用户操作员工作,而且我有点坚持报告任何问题的正确方法。

计划是在CRD上查看MysqlUser并在指定的数据库中创建Secret和mysql用户。显然,其中任何一个都可能出错,此时我需要报告错误。

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

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

2 个答案:

答案 0 :(得分:1)

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

在此方案中跟踪status.conditions中的事件不太有用,因为用户通常无法控制kubelet(或您的运算符)与下划线资源的交互方式。通常,status.conditions仅表示对象的状态,而不是它处于这种情况的原因。

这只是我对如何做出选择的理解。我不知道周围是否有任何规则。

答案 1 :(得分:1)

CRD还没有状态部分(1.7)。通过活动通知是完全没问题的,这是将它们放在首位的原因。