環境
- kubernetes 1.20.4
- Spring Boot 2.5.0-M3
目標
Service 的 clusterIP 字段表示服務的集群 IP 地址,如果沒有指定,會自動生成一個。
如果指定了,並且是合法的集群 IP 地址,它將會被 Service 使用。
示例
Service.yaml
apiVersion: v1
kind: Service
metadata:
name: test
spec:
ports:
- port: 80
查看
[root@master ~]# kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 79d
test ClusterIP 10.107.191.104 <none> 80/TCP 116s
[root@master ~]# kubectl describe service test
Name: test
Namespace: default
Labels: <none>
Annotations: <none>
Selector: <none>
Type: ClusterIP
IP Families: <none>
IP: 10.107.191.104
IPs: 10.107.191.104
Port: <unset> 80/TCP
TargetPort: 80/TCP
Endpoints: <none>
Session Affinity: None
Events: <none>
[root@master ~]#
自動分配了 10.107.191.104 的地址。
手動指定
apiVersion: v1
kind: Service
metadata:
name: test4
spec:
clusterIP: 10.107.191.144
ports:
- port: 80
[root@master ~]# kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 79d
test ClusterIP 10.107.191.104 <none> 80/TCP 4m34s
test4 ClusterIP 10.107.191.144 <none> 80/TCP 31s
總結
clusterIP 表示 Service 的集群地址,可以自動生成,也可以手動指定。
