0

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

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

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

4

1 回答 1

0

这不是 Kubernetes 的工作方式。

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

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

个别服务的部分规范涉及它们失败时的处理方式——它们应该重试、重试多少次、持续多长时间等。当您有依赖服务层时,没有依赖关系的服务可能会出现并到达立即准备就绪状态,而具有依赖关系的其他服务可能会尝试定位这些依赖关系,失败,然后被 kubernetes 重新启动/重试。

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

于 2018-03-08T21:00:14.147 回答