Kubernetes API和资源的架构遵循一个模式.
客户端可以通过指定desired state(这是资源的spec:
部分)来创建资源.这是一个发送到API服务器的"创建"请求.
控制器订阅/监视资源的变化,当在reconciliation loop中执行操作时,它们可能更新资源的状态(这是资源的status:
部分).
有关如何实现控制器并更新状态的示例,请参阅Kubebuilder book: Implementing a Controller - Update the Status.
示例中的客户端是一个"控制器运行时客户端":
"sigs.k8s.io/controller-runtime/pkg/client"
示例代码,其中reconciler更新status
个子资源:
if err := r.Status().Update(ctx, &cronJob); err != nil {
log.Error(err, "unable to update CronJob status")
return ctrl.Result{}, err
}