我正在尝试在其他资源中使用k8群集公开的api。
我希望首先启动k8群集,然后其他资源使用此k8群集公开的api。 我尝试使用引用在资源创建上布置隐式顺序,但我发现即使在k8集群完全启动之前,另一个资源也试图访问k8集群公开的API。
更多细节: https://gist.github.com/VarunkumarManohar/508454c42afa481771e2c600120ca7ac
答案 0 :(得分:0)
这不是kubernetes的工作原理。
Kubernetes使用称为协调的流程,其中描述最终状态的规范/资源定义在没有任何明确或隐含的排序期望的情况下创建。各个资源/应用程序/控制器尝试重试并再次重试以使自己与所需的最终状态协调。
在提交规范/资源之前,必须明确地和字面地指定所有跨应用程序引用/依赖项。与某些应用程序配置管理系统不同,k8s中没有可变插值或替换或类似的东西。
单个服务的部分规范涉及失败时应该做什么 - 重试时,重试次数,持续时间等等。当您拥有多层依赖服务时,可能会出现没有依赖关系的服务,立即进入准备状态,而其他具有依赖关系的服务可能会尝试找到这些依赖关系,失败,然后由kubernetes重新启动/重试。
最终,所有部件(有时在多次重启后)都已启动并准备就绪,因此与所需的最终状态进行了协调。