首页 > 解决方案 > 如何使用 NodeJS 应用程序指定主 pod

问题描述

我正在尝试使用 ReplicaSet 在 EKS 中运行我的 NodeJS 应用程序的部署,该 ReplicaSet 指示应该运行应用程序的 3 个 pod。但是,我正在尝试为其中一个 Pod 提供一些独有的逻辑,将其称为应用程序的“主”版本。

是否可以 a) 将不同的环境(例如 IS_MASTER)传递给该 pod,或者从应用程序内部告知它在“主 pod”上运行而无需多次部署?

标签: node.jskuberneteskubernetes-helmamazon-eks

解决方案


您可以使用 StatefulSets 为每个 pod 设置一个粘性标识

https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/

引用文档

与 Deployment 类似,StatefulSet 管理基于相同容器规范的 Pod。与 Deployment 不同,StatefulSet 为其每个 Pod 维护一个粘性标识。这些 pod 是根据相同的规范创建的,但不可互换:每个 pod 都有一个持久标识符,它在任何重新调度时都会维护该标识符。

Pod 将拥有foo-{0..N-1}给定 N 个副本的主机名,您可以对主机进行某种检查,例如主机名是否为主机名foo-0


推荐阅读