kubernetes - 将每个 Pod 的服务扩展到元控制器(kubernetes)中的多个端口
问题描述
我为 statefulset 创建了一个 service-per-pod,它适用于单个端口 (80/tcp)。但是,我需要将它用于多个端口(例如,80/tcp、30000/udp 等)。
如何将其扩展到 service-per-pod Metacontroller中的多个端口?
解决方案
service-per-pod示例实际上向您展示了如何在manifest/sync-service-per-pod.jsonnet中执行此操作。
注释允许您指定一组逗号分隔的端口,这些service-per-pod-ports
端口将由生成的服务公开:
service-per-pod-ports: "80:80,8080:8080"
然后在sync-service-per-pod.jsonnet
:
获取端口
local ports = statefulset.metadata.annotations["service-per-pod-ports"]
然后遍历它们ports
,在服务规范中创建多个:
ports: [
{
local parts = std.split(portnums, ":"),
name: "port-" + std.parseInt(parts[0]),
port: std.parseInt(parts[0]),
targetPort: std.parseInt(parts[1]),
}
for portnums in std.split(ports, ",")
]
请注意对上述集合的for portnums in std.split(ports, ",")
迭代。ports
看起来你正在尝试做一些更有活力的事情,所以你可以这样:
for index in std.range(1,N)
其中 N 是索引的最大值。
推荐阅读
- dependency-injection - 对 gmock 对象应用 ON_CALL 无效
- mysql - Django 模型列行为
- python - 使用 tinytag 和 PIL 将字节转换为图像
- java - 如何将 charCount 集成到 for 循环中
- google-cloud-firestore - Firestore 集合写入限制(由顺序更新的索引字段强加)是否受集合组查询的影响?
- python-3.x - 带有 Base64 pfx 证书的 Python 请求
- javascript - 我不断收到“未定义”作为错误,函数不返回任何内容
- python - 如何确定 self.attribute 是否在 __init__() 中定义?
- azure - Azure App Service 安装到 C:\home\site\wwwroot - New Relic 错误
- kotlin - 使用 IntellJ 在 kotlin 中运行 hello world 需要什么