0

我正在创建一个 k8s 自定义控制器。基本上,当创建自定义资源时,会创建一些额外的资源。其中包括配置映射、部署和服务。该项目是使用 kubebuilder 创建的。如果 controller.go 包含监视 configmap 的逻辑,则 Pod 将被终止为 OOMKilled,错误代码 137。监视其他类型的对象,例如部署、服务和 statefulset 工作正常。代码部分是

err = c.Watch(&source.Kind{Type: &corev1.ConfigMap{}}, &handler.EnqueueRequestForOwner{
        IsController: true,
        OwnerType:    &ltmv1beta1.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 上。谢谢。

4

0 回答 0