service主要提供的是负载均衡服务
在kubernetes中,Pod是有生命周期的,如果Pod重启它的IP很有可能会发生变化。如果我们的服务都是将Pod的IP地址写死,Pod挂掉或者重启,和刚才重启的pod相关联的其他服务将会找不到它所关联的Pod,为了解决这个问题,在kubernetes中定义了service资源对象,Service 定义了一个服务访问的入口,客户端通过这个入口即可访问服务背后的应用集群实例,service是一组Pod的逻辑集合,这一组Pod能够被Service访问到,通常是通过Label Selector实现的。
pod ip经常变化,service是pod的代理,我们客户端访问,只需要访问service,就会把请求代理到Pod
pod ip在k8s集群之外无法访问,所以需要创建service,这个service可以在k8s集群外访问的
service自动发现服务
创建文件nginx_svc.yaml
vim nginx_svc.yaml
apiVersion: v1 kind: Service metadata: name: myweb2 spec: type: NodePort #端口映射 ports: - port: 80 nodePort: 30000 targetPort: 80 selector: #标签选择器 app: myweb2
创建scv
kubectl create -f nginx_svc.yaml
发现分配了两个ip
kubectl describe svc myweb
此时浏览器中已经可以访问到我们的网站
增加一个服务
kubectl scale rc myweb --replicas=3
再次查看pod,此时有三个
kubectl get pod -o wide
发现分配了三个个ip
kubectl describe svc myweb



