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