在GCP Kubernetes引擎的同一部署中运行应用程序的不同组件吗?

时间:2019-02-06 05:02:10

标签: node.js kubernetes google-cloud-platform google-kubernetes-engine

我有一个包含多个组件的应用程序,例如x,y,z,我想以3个容器运行x,y,以1个容器运行z。如何在GCP上的Kubernetes引擎中的一个deployment.yaml文件中执行此操作?

1 个答案:

答案 0 :(得分:0)

在这种情况下,我认为部署无法为您提供帮助,但是StatefulSet在这里也可能会帮助您对应用程序进行一些更改。

作为StatefulSet,始终创建具有某些命名约定的Pod,即使重新创建Pod,它也会坚持使用。 Pod通常以-INDEX命名,例如mypod-1,mypod-2等。

因此要利用它,通过禁用第三个组件将前3个容器分配给您的两个组件。使用pod name环境变量,如果pod name的索引号不是4,则禁用您的第三个组件(此逻辑必须在您的应用程序中),对于具有index 4的pod name,请禁用前两个组件。

您可以使用以下配置将pod名称用作环境变量,

- name: Pod_Name
  valueFrom:
    fieldRef:
      fieldPath: metadata.name