NodePort
通过设置NodePort映射到宿主机(物理机/VM),同时设置Service的类型为NodePort,每个端口只提供一种服务,如果节点的IP地址发生变化,需要处理这种情况。
apiVersion: v1
kind: Service
metadata:
name: myservice
spec:
type: NodePort
selector:
app: myapp
ports:
- port: 80
targetPort: 80
# 默认情况下,Kubernetes会从某个范围内分配一个端口号(30000-32767)
nodePort: 30007
LoadBalancer
使用支持外部负载均衡器的云提供商的服务是,设置‘type’为‘LoadBalancer’,将为Service提供负载均衡器。将会生成一个IP地址,所有流量都会转发到指定的服务。每一个用LoadBalancer暴露的服务都会有他自己的IP地址,且每一个用到的LoadBalancer都需要付费。
apiVersion: v1
kind: Service
metadata:
name: myservice
spec:
selector:
app: myapp
ports:
- protocol: TCP
port: 80
targetPort: 9377
clusterIP: 10.0.173.135
loadBalancerIP: 78.179.78.45
type: LoadBalancer
status:
loadBalancer:
ingress:
- ip: 100.101.11.124