Service的参数的详细定义
apiVersion: v1
kind: Service
metadata:
name: <service-name>
namespace: <namespace> # 可选,默认为 default
labels:
<label-key>: <label-value>
annotations:
<annotation-key>: <annotation-value>
spec:
selector:
<label-key>: <label-value> # service关联的pod的标签选择器
ports:
- name: <port-name>
port: <port-number>
targetPort: <target-port-number> # pod端口号,支持数字或名称
protocol: <protocol-type> # TCP/UDP/SCTP, 默认TCP
type: <service-type> # ClusterIP, NodePort, LoadBalancer 或 ExternalName
apiVersion
:指定使用的 Kubernetes API 版本。kind
:定义了对象类型,此处为Service
。labels
:用于将 Service 与其他 Kubernetes 对象进行关联。这些标签可以用作查询和检索服务,也可以用于自动化流程中。annotations
:用于存储非标准元数据,通常被用来存储详细的配置信息、描述性说明和其他有用的信息。metadata
:定义 Service 的元数据,包括 Service 名称和所在的 Namespace。selector
:定义 Service 所对应的 Pod 的标签选择器,只有匹配的 Pod 才会被 Service 代理。ports
:定义 Service 对外暴露的端口,并将其映射到后端 Pod 中的端口。一个 Service 可以暴露多个端口。name
:定义端口的名称。port
:定义 Service 暴露的端口号。targetPort
:定义后端 Pod 中用于提供服务的端口号,可以是数字或名称。protocol
:定义端口协议,如 TCP/UDP/SCTP,默认为 TCP。
type
:定义 Service 的类型,可以是 ClusterIP、NodePort、LoadBalancer 或 ExternalName