我正在创建一个 k8s 自定义控制器。基本上,当创建自定义资源时,会创建一些额外的资源。其中包括配置映射、部署和服务。该项目是使用 kubebuilder 创建的。如果 controller.go 包含监视 configmap 的逻辑,则 Pod 将被终止为 OOMKilled,错误代码 137。监视其他类型的对象,例如部署、服务和 statefulset 工作正常。代码部分是
err = c.Watch(&source.Kind{Type: &corev1.ConfigMap{}}, &handler.EnqueueRequestForOwner{
IsController: true,
OwnerType: <mv1beta1.Ltm{},
})
if err != nil {
log.Println(err)
return err
}
ltmv1beta1 是 CR。这与 kubebuilder 创建的示例代码几乎相同。还具有为角色授予的正确访问权限
services [] [] [get list watch create update patch delete]
configmaps [] [] [get list watch create update patch delete]
secrets [] [] [get list watch create update patch delete]
mutatingwebhookconfigurations.admissionregistration.k8s.io [] [] [get list watch create update patch delete]
validatingwebhookconfigurations.admissionregistration.k8s.io [] [] [get list watch create update patch delete]
statefulsets.apps [] [] [get list watch create update patch delete]
ltms.ltm.k8s.io [] [] [get list watch create update patch delete]
deployments.apps/status [] [] [get update patch]
ltms.ltm.k8s.io/status [] [] [get update patch]
无法弄清楚为什么这只发生在 configmap 上。谢谢。