有一个问题就是现在我的业务分配在多个Pod上,那么如果我某个Pod死掉岂不是业务完蛋了,当然也会有人说Pod死掉没问题啊,K8S自身机制Deployment和Controller会动态的创建和销毁Pod来保证应用的整体稳定性,那这时候还会有问题,那就是每个Pod产生的IP都是动态的,那所以说重新启动了我对外访问的IP岂不是要变了,别急,下面我们来解决下这个问题。
可以通过Service来解决如上所遇到的问题,那么什么是Service呢?
Service是kubernetes最核心的概念,通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并且将请求进行负载分发到后端的各个容器应用上。
简单来说Service就是一个把所有Pod都池化的一个组,然后对外统一固定一个IP,具体是哪些Pod可以通过之前介绍到的Label标签来进行设置。
在创建Service之前先看看我们在部署应用的时候创建的nginx.yml
下面来创建个Service看看
执行kubectl apply创建Servie nginx-svc
1 kubcetl apply –f nginx-svc.yml
创建完成之后nginx-svc会分配到一个cluster-ip,可以通过该ip访问后端nginx业务。
创建完之后可以查看service详情查看后端都包含哪些pod
1 kubectl describe service nginx-svc