Service
将一组Pod公开为网络服务的抽象方法。
Pod的服务发现与负载均衡。
# 暴露deployment
kubectl expose deployment my-dep --port=8000 --target-port=80
# 查看服务
kubectl get service
使用资源配置文件暴露服务
.yaml
apiVersion: v1
kind: Service
metadata:
labels:
app: my-dep
name: my-dep
spec:
selector:
app: my-dep
ports:
- port: 8000
protocol: TCP
targetPort: 80
ClusterIP模式(默认)只能在集群内部访问
# 等同于没有--type
kubectl expose deployment my-dep --port=8000 --target-port=80 --type=ClusterIP
apiVersion: v1
kind: Service
metadata:
labels:
app: my-dep
name: my-dep
spec:
selector:
app: my-dep
ports:
- port: 8000
protocol: TCP
targetPort: 80
type: ClusterIP
NodePort模式(集群外,即公网也可以访问)
kubectl expose deploy my-dep --port=8000 --target-port=80 --type=NodePort
# 通过此命令可以得到nodeport
kubectl get svc
apiVersion: v1
kind: Service
metadata:
labels:
app: my-dep
name: my-dep
spec:
selector:
app: my-dep
ports:
- port: 8000
protocol: TCP
targetPort: 80
type: NodePort
NodePort范围在30000~32767之间
使用公网IP(master或node)+nodeport可以负载均衡访问到Pod。