什么是Service?
1.作用
Service为一组pod提供服务发现与负载均衡,当有pod可用时,Service的服务发现能感知到,当外部请求进来时,Service的负载均衡功能能够轮流分发流量。并且能为外部服务提供固定的ip和端口。
2.Service的两种模式
默认ClusterIP:只能集群内部访问
常用命令
#查看Service
kubectl get service
#创建service,--type可以省略,默认ClusterIP
kubectl expose deploy my-dep --port=8000 --target-port=80 --type=ClusterIP
#删除service
kubectl delete service my-dep
#查看pod的标签
kubectl get pod --show-labels
#使用标签检索Pod
kubectl get pod -l app=my-dep
使用yaml创建service
apiVersion: v1
kind: Service
metadata:
labels:
app: my-dep
name: my-dep
spec:
selector:
app: my-dep
ports:
- port: 8000
protocol: TCP
targetPort: 80
NodePort模式:提供公网访问的端口,k8s集群中任意一台机器的Ip:端口都能访问到应用。
注意:端口范围在30000~32767之间,防火墙要提前放开。
常用命令
#查看Service
kubectl get service
#创建service
kubectl expose deploy my-dep --port=8000 --target-port=80 --type=NodePort
#删除service
kubectl delete service my-dep
#查看pod的标签
kubectl get pod --show-labels
#使用标签检索Pod
kubectl get pod -l app=my-dep
测试:用浏览器访问K8s集群中任意一台机器的IP:30948都能访问到服务。