apiVersion: v1
kind: Service
metadata:
name: my-service # Service 的名称
spec:
type: ClusterIP # Service 类型为 ClusterIP
selector:
app: my-app # 根据标签选择器选择要关联的 Pod
ports:
- protocol: TCP # 服务端口的协议
port: 80 # Service 的端口
targetPort: 8080 # Pod 的目标端口
apiVersion
:指定 Kubernetes API 的版本,这里使用的是v1
版本。kind
:指定资源的类型,这里是Service
。metadata
:用于定义资源的元数据,例如名称、标签等。name
:指定 Service 的名称为my-service
。
spec
:定义 Service 的规范。type
:指定 Service 类型为ClusterIP
。这表示将创建一个虚拟的 ClusterIP 地址用于在集群内部访问 Service。selector
:根据标签选择器选择要与 Service 关联的 Pod。app: my-app
:这里选择具有标签app: my-app
的 Pod 与该 Service 关联。
ports
:定义 Service 的端口配置。protocol
:指定服务端口的协议,这里使用的是 TCP。port
:指定 Service 的端口,这里设置为80
。targetPort
:指定将流量转发到 Pod 的目标端口,这里设置为8080
。
通过上述 YAML 文件,定义了一个名为 my-service
的 ClusterIP 类型的 Service。该 Service 关联带有标签 app: my-app
的 Pod,并将流量从虚拟的 ClusterIP 地址的 80
端口转发到与该标签匹配的 Pod 的 8080
端口上。