问题描述
我是operator-sdk
的新手。现在,我正在使用envtest
框架为操作员编写测试,所以我有一个假的环境控制面板。
在控制器协调循环内部,一旦我初始化了CR,控制器就会拉下Pod的映像并部署该Pod。
以上所有行为均发生在实际的k8s集群中。我的问题是,在envtest
的环境下,控制器是否真的下拉了用于部署Pod的映像?
解决方法
这取决于o_i = 1 # initial value
num_loops = 10 # or however many loop iterations you want
results = [] # the list that stores the results
for _ in range(num_loops):
o_i = o_f(l,o_i,f_1)
results.append(o_i)
print(o_i)
的配置。以下是来自kubebuilder book的引文:
[envtest]设置并启动etcd和Kubernetes API服务器的实例,而无需kubelet,控制器管理器或其他组件
除非您使用的是现有集群,否则请记住,在测试环境中没有内置控制器在运行
因此,如果您未将envtest
env var设置为true,那么USE_EXISTING_CLUSTER
将仅使用API服务器和etcd来设置控制平面。例如,如果您的控制器应该在某个事件中创建Deployment,则测试环境中没有可以创建ReplicaSet和Pod的Deployment Controller。基本上,它所做的只是将测试环境的状态存储在etcd中。