我正在为一个mysql用户操作员工作,而且我有点坚持报告任何问题的正确方法。
计划是在CRD上查看MysqlUser
并在指定的数据库中创建Secret
和mysql用户。显然,其中任何一个都可能出错,此时我需要报告错误。
status.conditions
中的一些k8s对象跟踪事件。还有Event
对象,但我只看到过kubelet / controllermanager使用的对象。
如果说,我在创建mysql用户时遇到问题,因为我的操作员无法与mysql通信,但CRD是否有效,如果它转到事件或CRD的状态?
答案 0 :(得分:1)
这听起来类似于从卷插件(kubelet)报告的事件,例如,kubelet无法从NFS服务器挂载卷,因为服务器地址无效,因此无法访问它。
在此方案中跟踪status.conditions
中的事件不太有用,因为用户通常无法控制kubelet(或您的运算符)与下划线资源的交互方式。通常,status.conditions
仅表示对象的状态,而不是它处于这种情况的原因。
这只是我对如何做出选择的理解。我不知道周围是否有任何规则。
答案 1 :(得分:1)
CRD还没有状态部分(1.7)。通过活动通知是完全没问题的,这是将它们放在首位的原因。