kubectl explain svc.spec.type
ClusterIP
默认
自动分配一个仅 Cluster 内部可以访问的 ip (svc 网段)
spec:
type: ClusterIP
clusterIP: 10.11.0.180
ports:
- port: 80
targetPort: 80
protocol: TCP
headless svc 无头服务
clusterIP: None
svc 创建后不会被分配 cluster IP,而是会以 DNS 记录的方式暴露出它所代理的 Pod
NodePort
在 ClusterIp 基础上为 svc 在每台 node 上绑定一个随机端口, 默认:30000-32767
可以使用 node_ip:port 访问该服务
spec:
type: NodePort
ports:
- port: 80
targetPort: 80
protocol: TCP
nodePort: 30080
LoadBalancer
在 NodePort 基础上,借助 cloud provider 创建一个外部负载均衡器
将请求转发到 node_ip:port
Externalname
把集群外部的服务引入到集群内部,在集群内部直接使用
没有任何类型代理被创建
apiVersion: v1
kind: Service
metadata:
name: baidu-en-svc
spec:
type: ExternalName
externalName: www.baidu.com
以 CNAME 对应解析记录
