通过上节课的学习,已经能够利用Deployment来创建一组Pod来提供具有高可用性的服务。
虽然每个Pod都会分配一个单独的Pod IP,然而却存在如下两问题:
这样对于访问这个服务带来了难度。因此,kubernetes设计了Service来解决这个问题。
Service可以看作是一组同类Pod对外的访问接口。借助Service,应用可以方便地实现服务发现和负载均衡。

创建集群内部可访问的Service
- # 暴露Service
- [root@master ~]# kubectl expose deploy nginx --name=svc-nginx1 --type=ClusterIP --port=80 --target-port=80 -n dev
- service/svc-nginx1 exposed
-
- # 查看service
- [root@master ~]# kubectl get svc svc-nginx1 -n dev -o wide
- NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
- svc-nginx1 ClusterIP 10.109.179.231
80/TCP 3m51s run=nginx -
- # 这里产生了一个CLUSTER-IP,这就是service的IP,在Service的生命周期中,这个地址是不会变动的
- # 可以通过这个IP访问当前service对应的POD
- [root@master ~]# curl 10.109.179.231:80
- <head>
Welcome to nginx! Welcome to nginx!
- .......