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

时间:2018-03-07 04:00:27

标签: kubernetes google-deployment-manager

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

我希望首先启动k8群集,然后其他资源使用此k8群集公开的api。 我尝试使用引用在资源创建上布置隐式顺序,但我发现即使在k8集群完全启动之前,另一个资源也试图访问k8集群公开的API。

更多细节: https://gist.github.com/VarunkumarManohar/508454c42afa481771e2c600120ca7ac

1 个答案:

答案 0 :(得分:0)

这不是kubernetes的工作原理。

Kubernetes使用称为协调的流程,其中描述最终状态的规范/资源定义在没有任何明确或隐含的排序期望的情况下创建。各个资源/应用程序/控制器尝试重试并再次重试以使自己与所需的最终状态协调。

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

单个服务的部分规范涉及失败时应该做什么 - 重试时,重试次数,持续时间等等。当您拥有多层依赖服务时,可能会出现没有依赖关系的服务,立即进入准备状态,而其他具有依赖关系的服务可能会尝试找到这些依赖关系,失败,然后由kubernetes重新启动/重试。

最终,所有部件(有时在多次重启后)都已启动并准备就绪,因此与所需的最终状态进行了协调。