vlambda博客
学习文章列表

k8s系列-01-核心概念


主旨

要上手k8s,那么他的核心概念是重中之重,否则的话云里雾里的,连概念都不清楚,学的也是一团乱麻,我们先来梳理下,不要着急,心急吃不了热豆腐。


慢慢来

每一步都会引入图片,一步一步来看,到底每一个概念对于整个k8s服务,有什么影响。

Container


container 是一个容器,因为docker的底层就是container,每个容器底层是一个镜像,比如说我们通过“ywj-image:v1”镜像,运行了一个容器,如下图:

k8s系列-01-核心概念


POD
POD:pod是k8s中的一个概念,一个pod里面呢,可以有一个或者多个容器,有什么特征呢?
一个pod里面所有的容器运行在一台服务器上一个pod里面所有的容器,共享网络有一个唯一的IP地址必须有一个特定的容器:pause,且该容器有一个固定的镜像,这个pause相当于根容器,将一个pod里面的所有container连到一块儿来负责整个pod的健康检查并上报给k8s,比如或你的项目中有两个或者多个服务的联系非常紧密,这个时候我们就可以选择把他们放到同一个pod里面来


    根据以上的信息,我们引出下图:

k8s系列-01-核心概念


RS

RS,全称ReplicaSet,副本集,就是指运行多个pod,如果一旦某个pod出现异常,我们可以有另一个pod来持续对外提供服务,如下图:


k8s系列-01-核心概念


Deployment

deployment顾名思义,就是部署,那么我们如果部署上去如何更新呢,这个时候我们就需要用到它了,比如哈,我们已经部署了如上图的服务,这个时候我们想更新“ywj-image:v1”的镜像版本到“ywj-image:v2”,是怎么回事儿呢?
首先,会再新建一个RS,并启动一个POD,这个时候新的POD里面的容器的镜像,就是新的镜像了,相当于有了3个容器,如下图:

k8s系列-01-核心概念


这个时候,当新RS的新POD,健康检查通过之后,deployment会控制原来的RS,删除一个POD,如下图:

k8s系列-01-核心概念


这个时候我们实际上运行了一个原版本的pod,一个新版本的pod,然后deployment会再次控制新RS,再启动一个pod,如下图:

k8s系列-01-核心概念


从图中是不是可以看到,实际上运行了一个老版本的pod和两个新pod呢,确实如此哈,这个时候当新版本的pod再次经过健康检查之后,deployment就会将原RS下剩下的一个pod删除,并删除原RS,这个时候我们就相当于更新完成了,如下图:

k8s系列-01-核心概念


说明下哈,我们在k8s中实际中操作的就是deployment哈,像那些pod和centainer都不需要我们人工去干预。


Service

Service,顾名思义就是服务,服务是通过标签来进行控制的,k8s中很多东西都可以打标签,比如pod,rs等都可以,如下图:

k8s系列-01-核心概念


且service对外暴露是通过clusterIP进行的,client客户端就是通过该IP来进行调用的,图示如下:

k8s系列-01-核心概念


至此,k8s中最重要的核心概念,结束。后面我们将由浅入深的进行介绍k8s,期待你的关注哦。