老顾在上一篇文章中介绍了K8S的基础架构流程,以及核心的组件;这篇文章继续K8S的相关的概念。
上篇介绍到了NodePortService解决了外部请求K8S内部的应用的问题。下面我们看看如何搭建应用服务集群的?
应用集群在传统应用中,我们一般利用nginx反向代理,通过配置域名指向多个IP地址,从而实现了应用的集群。如果需要增加应用或减少应用,都需要调整nginx的配置;还是相当繁琐的。
那K8S是如何实现应用集群的呢?
副本集ReplicaSet上一篇文章中介绍了利用NodePortService的Selector选择Label标签,路由到后端的其中一个Pod。
上图中由个Pod组成的应用集群,那如何保证Pod集群的高可用呢?如果其中一个Pod挂了,被删除了,K8S会怎么处理?
K8S有个ReplicaSet组件,从字面上面来看就是副本集意思;它的作用就是用来保证Pod的高可用,如果我们在ReplicaSet中定义了应用数量为,那么它会保证应用数量;即使一个pod挂了,它会自动会启动1个,始终保证pod应用数量为。
编写yaml
apiVersion:extensions/v1beta1#指定api版本kind:ReplicaSet#指定创建资源的角色/类型metadata:name:mc-userspec:replicas:#副本集数量template:#pod模板metadata:#资源的元数据/属性labels:#标签定义app:mc-user#标签值spec:#指定该资源的内容containers:#容器定义-name:mc-user#容器的名字image:rainbow/mc-user:1.0.RELEASE#容器镜像
上面就是定义了mc-user的pod,副本集数始终为。Service的yaml和之前一样,注意Selector的Label,可提供给外部访问端口
apiVersion:v1kind:Servicemetadata:name:mc-userspec:ports:-name: