apiVersion: v1
kind: Service
metadata:
name: <service name>
namespace: <service namespace>
annotations:
key: value
labels:
key: value
spec:
type: string
selector:
key: value
clusterIP: string
sessionAffinity: string
ports:
- port: int
name: string
protocol: string
targetPort: int
nodePort: int
名称 | 必需 | 含义 |
---|---|---|
apiVersion | 是 | API版本号 |
kind | 是 | 资源类型 |
metadata.name | 是 | Service名称 |
metadata.namespace | 是 | Service所属的命名空间 |
metadata.annotations | 是 | 用户定义的附加信息 |
metadata.labels | 是 | 用户自定义标签,供标签选择器匹配目标对象 |
spec.type | 否 | Service的类型,可取值有ClusterIP(默认)、NodePort、LoadBalancer |
spec.selector | 是 | Service作用的范围,选择具有指定label标签的Pod作为Service管理的范围 |
spec.clusterIP | 否 | 服务IP,当type为ClusterIP时,此处不指定则系统分配ClusterIP,否则以此处指定的为准 |
spec.sessionAffinity | 否 | 是否支持会话,可选值为ClientIP,默认为空,ClientIP表示将同一客户端的访问请求都转发到同一个后段Pod |
spec.ports[].port | 是 | Service的端口 |
spec.ports[].targetPort | 是 | 转发到后端Pod上的端口号 |
spec.ports[].nodePort | 否 | type为NodePort时,指定映射的宿主机的端口号,默认从30000到32767中随机分配一个可用的端口号 |
spec.ports[].name | 否 | Service端口映射规则的名称 |
spec.ports[].protocol | 否 | Service端口映射的协议类型,支持TCP、UDP,默认TCP |
-
ClusterIP
: port -> targetPort -
NodePort
: nodePort -> port -> targetPort -
Service
一旦创建,生命周期内ClusterIP
不变,NodePort
模式下,也会自动创建ClusterIP
https://www.jianshu.com/p/3749bf6aaabb
https://www.qikqiak.com/
网友评论