node.js - 如何使用 NodeJS 应用程序指定主 pod
问题描述
我正在尝试使用 ReplicaSet 在 EKS 中运行我的 NodeJS 应用程序的部署,该 ReplicaSet 指示应该运行应用程序的 3 个 pod。但是,我正在尝试为其中一个 Pod 提供一些独有的逻辑,将其称为应用程序的“主”版本。
是否可以 a) 将不同的环境(例如 IS_MASTER)传递给该 pod,或者从应用程序内部告知它在“主 pod”上运行而无需多次部署?
解决方案
您可以使用 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
。
推荐阅读
- asp.net-mvc - 未捕获的类型错误:c(...).tScrollable 不是函数
- python - 分类编码后处理不平衡数据
- java - 使用 Apache Camel 进行 PGP 加密
- dynamics-crm-2011 - 为什么每次创建新记录时,我发现 ID 增加 2 不是正常方式?
- python - 替换字典列表中字典的特定项目?
- spring-boot - 有没有办法用假装弹簧客户端只记录身体?
- rest - 通过角度6访问rest-api时出现CORS错误
- batch-file - 根据命名约定删除所有目录
- delphi - Codesite 日志记录中的错误时间戳
- arrays - 未定义的方法 Ruby