You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用envtest而非外部集群测试时EndpointSlice事件丢失问题排查

问题:envtest环境下Service/Deployment无法触发预期EndpointSlice事件的排查

背景

我基于controller-runtime开发了自定义K8s控制器,正在用envtest编写集成测试。该控制器监听EndpointSlice资源和自定义CRD,预期逻辑是:当创建/修改Service,或是创建匹配Service标签的Deployment时,会生成对应的EndpointSlice事件,进而触发控制器调和。

控制器核心注册代码如下:

return ctrl.NewControllerManagedBy(mgr).
        For(&v1discovery.EndpointSlice{}).
        Watches(&v1alpha1.CustomCRD{}, handler.EnqueueRequestsFromMapFunc(mapFn)).
        Complete(s)

测试现象

  • 使用本地kind集群测试(设置os.Setenv("USE_EXISTING_CLUSTER", "true")):EndpointSlice事件正常生成,符合预期逻辑。
  • 使用envtest自带的K8s组件(API Server、etcd、证书管理器,设置USE_EXISTING_CLUSTER="false")测试:创建Service、匹配标签的Deployment后,不会生成对应的EndpointSlice事件,仅能看到K8s服务器的默认EndpointSlice事件,示例如下:
&EndpointSlice{ObjectMeta:{kubernetes  default ....

已完成的配置

我已在测试套件中添加了Scheme相关配置,但问题未解决:

corev1.AddToScheme(scheme.Scheme)

v1discovery.AddToScheme(scheme.Scheme)

appsv1.AddToScheme(scheme.Scheme)

求助方向

请问该问题可能的原因是什么?下一步应该排查哪些内容?


内容的提问来源于stack exchange,提问作者user2512324

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 17:18:14