kubernetes - 使用 envTest 进行 kubernetes Operator-sdk 测试
问题描述
我是新手operator-sdk
。现在我正在为带有envtest
框架的操作员编写测试,所以我有一个用于环境的假控制平面。
在控制器协调循环中,一旦我初始化了一个 CR,控制器就会为 pod 拉下一个镜像并部署该 Pod。
上述所有行为都发生在真正的 k8s 集群中。我的问题是,在环境下envtest
,控制器是否真的为部署 Pod 下拉图像?
解决方案
这取决于envtest
配置。以下是kubebuilder 书中的引述:
[envtest] 设置并启动 etcd 实例和 Kubernetes API 服务器,无需 kubelet、controller-manager 或其他组件
除非您使用的是现有集群,否则请记住,测试上下文中没有运行任何内置控制器
因此,如果您不将USE_EXISTING_CLUSTER
env var 设置为 true,envtest
则将仅使用 API 服务器和 etcd 设置控制平面。例如,如果您的控制器应该在某些事件中创建 Deployment,那么在测试环境中没有会创建 ReplicaSet 和 Pod 的部署控制器。基本上,它所做的只是将测试环境的状态存储在 etcd 中。
推荐阅读
- angular - 成功保存时的角度显示褪色复选框
- lighthouse - Pagespeed 洞察力避免链接关键请求仅列出初始导航,然后是我的域两次
- git - 有没有办法运行 `git cherry-pick` 并指定特定于给定分支的一系列提交?
- javascript - 如何使用响应式搜索来实现“加载更多”功能?
- c# - NSubstitute 与 DbConnection
- javascript - 如何使“全局”组件基于 url 路由呈现内容?
- firebase - Firebase 云消息显示加载定位选项时出错
- javascript - 如何使用 d3 创建可重用的 Vue 组件?
- unity3d - 在 unity3D 中创建移动文本
- javascript - 如何在反应中的页面之间传递链接ID?