Google Deployment Manager 使用 kubernetes 集群的引用对资源进行排序



我正在尝试在其他资源中使用 k8 集群公开的 api。

我希望 k8 集群首先启动,然后其他资源利用此 k8 集群公开的 api。 我尝试使用引用来布置资源创建的隐式顺序,但我看到甚至在 k8 集群完全启动之前,另一个资源正在尝试访问 k8 集群公开的 API。

更多详情: https://gist.github.com/VarunkumarManohar/508454c42afa481771e2c600120ca7ac

这不是 kubernetes 的工作方式。

Kubernetes 使用一种称为协调的过程,其中描述最终状态的规范/资源定义是在没有任何关于排序的明确或隐含期望的情况下创建的。各个资源/应用程序/控制器尝试重试,然后重试,以与所需的最终状态进行协调。

在提交规范/资源之前,必须明确和字面地指定所有跨应用程序引用/依赖项。与某些应用程序配置管理系统不同,k8s 中没有变量插值或替换或类似的东西。

单个服务规范的一部分涉及失败时该怎么做 - 他们应该重试,重试多少次,多长时间等。当您拥有依赖服务层时,没有依赖关系的服务可能会立即启动并进入就绪状态,而其他具有依赖关系的服务可能会尝试定位这些依赖关系,失败,然后由 kubernetes 重新启动/重试。

最终,所有部件(有时在多次单独重新启动后)都已启动并准备就绪,因此与所需的最终状态保持一致。

最新更新