新闻详情

新闻详情

首页 / 资讯中心 / 详情

Argo Workflows Java SDK 中 ServicePort 模型详解:端口定义字段与 Kubernetes Service 语义

发布时间:2026/11/6 3:12:42来源:尧图网络
Argo Workflows Java SDK 中 ServicePort 模型详解:端口定义字段与 Kubernetes Service 语义
Argo Workflows Java SDK 中 ServicePort 模型详解端口定义字段与 Kubernetes Service 语义【免费下载链接】argo-workflowsWorkflow Engine for Kubernetes项目地址: https://gitcode.com/gh_mirrors/ar/argo-workflows导读ServicePort是 Argo Workflows Java SDKsdks/java/client中描述 Kubernetes Service 端口信息的模型类对应于 Kubernetes 核心 API 的io.k8s.api.core.v1.ServicePort。在 Argo 生态中它主要用于承载事件源EventSource暴露的 Service 端口列表来自 Argo Events 的Service结构也是理解工作流控制器、事件服务如何声明与暴露端口的基础。读完本文你将掌握ServicePort全部 6 个字段的类型、含义、默认值与可选性约束并能在 Java SDK 中正确构造端口配置。一、模型定位从 Kubernetes 核心类型到 Argo Java SDKServicePort并非 Argo 自创的业务类型而是 Kubernetes 核心 APIcore/v1中ServiceSpec.ports列表元素的标准类型。在 Argo Workflows 仓库中该类型以io.k8s.api.core.v1.ServicePort的形式被引入 OpenAPI 规范并由此生成 Java SDK 客户端模型。在 Argo 生态内的实际使用场景中ServicePort出现在事件源EventSource的 Service 定义里。从 OpenAPI 规范 可以看到Argo Events 的Service结构体包含ports字段ports: { type: array, items: { $ref: #/definitions/io.k8s.api.core.v1.ServicePort } }也就是说一个事件源 Service 可以声明一个或多个ServicePort每个端口对应 Kubernetes Service 对外暴露的一个端口条目。对应到 Java SDKGithubComArgoprojArgoEventsPkgApisEventsV1alpha1Service 文档 中ports的类型即为ListServicePort。二、属性总览ServicePort共包含 6 个属性其中仅port为必填字段其余均可选。下表汇总了字段类型与说明名称类型说明可选性appProtocolString端口的应用层协议提示遵循 Kubernetes 标签语法[optional]nameStringService 内端口的名称须为 DNS_LABEL同一 ServiceSpec 内必须唯一[optional]nodePortIntegerService 类型为 NodePort 或 LoadBalancer 时每个节点上暴露的端口[optional]portInteger该 Service 对外暴露的端口必填protocolStringIP 层协议支持 TCP、UDP、SCTP默认 TCP[optional]targetPortString目标 Pod 上要访问的端口数字或名称[optional]从 OpenAPI 定义看唯一被标记进required列表的是port见 swagger.json这与 Kubernetes 官方校验一致一个端口条目至少要声明对外暴露的端口号。三、必填字段 portService 对外暴露的端口port是该模型唯一必填字段类型为Integer含义为 Thebegin▁of▁sentence## port that will be exposed by this service即 Service 对外暴露监听的端口号。它相当于 Kubernetes Service 规范中spec.ports[].port是 ClusterIP 上实际监听的端口。在 Argo 事件源场景下当事件源如 Webhook 类型的 HTTP 事件源需要对外提供访问入口时就必须在 Service 的ports列表中至少指定一个port否则该端口条目不成立。例如声明一个 12000 端口的服务Java 侧构造即需要setPort(12000)。四、targetPort从 Service 端口到 Pod 容器的映射targetPort类型为String在 Kubernetes 中实际为IntOrString即可同时承载数字或名称描述目标 Pod 上要访问的端口。OpenAPI 规范中给出了更完整的语义见 swagger.json数字形式取值范围 1 到 65535直接对应目标 Pod 的容器端口名称形式必须是IANA_SVC_NAME会被解析为目标 Pod 容器端口列表中对应的命名端口未指定时默认取port字段的值即 identity map端口映射到自身特殊场景对于clusterIPNone的 headless Service该字段会被忽略此时应省略或将值设为与port相等。由于 Java SDK 将其建模为String使用数字端口时需要以字符串形式传入例如setTargetPort(8080)或传入命名端口setTargetPort(http)。五、protocol 与 appProtocol两层协议声明protocol描述 IP 传输层协议支持TCP、UDP、SCTP三种取值默认是TCP。在 Argo 的多数事件源场景HTTP/Webhook中默认 TCP 即可满足需求。appProtocol则是应用层协议的提示hint遵循 Kubernetes 标签语法label syntax为实现了特定协议的组件提供更丰富的行为提示。其合法取值分三类完整描述见 swagger.json无前缀的协议名保留给 IANA 标准服务名依据 RFC-6335Kubernetes 定义的前缀名kubernetes.io/h2c—— 明文 HTTP/2prior knowledgekubernetes.io/ws—— 明文 WebSocketkubernetes.io/wss—— 基于 TLS 的 WebSocket实现自定义的前缀名如mycompany.com/my-custom-protocol。在实际的 Java SDK 使用中若事件源需要暴露 WebSocket 或 h2c 等服务可在appProtocol中声明相应取值帮助负载均衡器等组件识别协议。六、name 与 nodePort命名约束与节点端口nameService 内端口的名称必须是 DNS_LABEL即符合 DNS 标签规范小写字母、数字与-且以字母数字开头结尾。同一ServiceSpec内所有端口的name必须唯一当 Service 只定义了一个ServicePort时该字段可省略。需要特别注意的是Service 的 Endpoints 计算要求该字段与EndpointPort.name保持一致否则端口关联可能失效。nodePort仅当 Service 类型为NodePort或LoadBalancer时生效表示每个节点上暴露的端口。其行为规则见 swagger.json通常由系统自动分配若显式指定值必须在合法范围内且未被占用否则创建操作失败若未指定只要 Service 需要 nodePort 就会自动分配若为不需要 nodePort 的 Service如 ClusterIP 类型显式指定该字段创建会失败当 Service 从 NodePort 更新为 ClusterIP 时该字段会被清除。在 Argo 事件源场景中若希望事件源 Service 对外可通过节点端口访问例如NodePort或LoadBalancer类型即可设置该字段而默认的 ClusterIP 事件源 Service 则通常不设置。七、Java SDK 中的完整构造示例综合以上字段语义在 Argo Workflows Java SDK 中构造一个承载 WebSocket 服务的ServicePort实例如下import io.argoproj.events.models.eventsource.v1alpha1.ServicePort; // 以实际生成包名为准 ServicePort webSocketPort new ServicePort() .name(ws) .port(12000) .targetPort(12000) // String 形式承载 IntOrString .protocol(TCP) // 默认即 TCP可省略 .appProtocol(kubernetes.io/ws); // 声明 WebSocket over cleartext若再结合事件源 Service 的ports列表使用其类型为ListServicePort即可将端口定义挂载到事件源暴露的 Service 上使其真正可被集群内外访问。八、验证途径仓库中的真实引用OpenAPI 规范io.k8s.api.core.v1.ServicePort的完整定义位于 api/openapi-spec/swagger.json是 Java SDK 文档生成的权威来源Java SDK 文档本文件即 sdks/java/client/docs/ServicePort.md与GithubComArgoprojArgoEventsPkgApisEventsV1alpha1Service文档中ports: ListServicePort字段相互印证仓库测试与工具代码如 test/e2e/telemetry_stack_test.go中通过ServicePort相关常量TempoServicePort、PrometheusServicePort验证了 Argo 依赖服务端口的使用方式可作为理解该类型在端到端链路中作用的旁证。小结ServicePort是 Argo Java SDK 对 Kubernetes 标准 Service 端口模型的直接映射port是唯一必填字段targetPort承担 Service 端口到容器端口的映射支持数字与名称protocol/appProtocol分别约束传输层与应用层协议name与nodePort则负责命名唯一性和节点级暴露。掌握这 6 个字段的语义即可在事件源等场景中准确声明服务端口并避免诸如nodePort与 Service 类型不匹配、name违反 DNS_LABEL 等常见配置错误。【免费下载链接】argo-workflowsWorkflow Engine for Kubernetes项目地址: https://gitcode.com/gh_mirrors/ar/argo-workflows创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/6 6:37:16

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/6 0:32:51

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/6 1:10:54

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/6 17:25:36

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/6 14:29:05

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/6 14:29:07

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉