5. 认识服务编排工具-Kubernetes

  1.  了解kubernetes

 

 

 

k8s首先也是需要一个集群的,中间的七边形是k8s的master节点,可以理解为安装了k8s核心组件的主机,周围的3个六边形称为node节点,在k8s中也就是工作节点,每个工作节点上运行了一个kubelet服务和一个docker服务,kubelet相当于当前节点运行时的主管,会管理当前node上运行的所有服务,master中的deployment表示一个部署,什么叫部署呢,比如说运行nginx叫一次部署,然后把

nginx扩容到两个实例,也叫一次部署,或者把nignx的端口从80改成8080也叫一次部署。周围的containerized app表示在node上运行的各个容器化的应用, 这个过程可以理解为master发起了一个deployment,然后选中3个node节点其中的一个,部署了新的应用,运行在容器中。上图右上角图中的圆圈表示pod,下面我们介绍一下什么是pod

 

 pod是k8s概念中最小的单元,可以理解为原子。pod里面是容器,我们可以看到pod1,里面运行了一个容器,pod1同时自己有独立的ip地址10.10.10.1,pod2中运行了一个容器,还有一个挂载的磁盘,这个容器的ip地址是10.10.10.2,第三个pod里面有两个容器,但是只有一个ip地址10.10.10.3,所以这两个容器是可以共享网络ip的,同时可以共享存储,pod4中有多个容器,多个磁盘,说明一个pod中多个容器可以共享多个磁盘存储。

pod里面运行容器中,pod自己是运行在node上的。kubelet则负责调度pod,把pod运行起来,一个node上可以有任意多个pod,只要资源足够的话。

 

pod知道后,我们进入下一个概念,叫做service,上图中中间是master节点,其余3个是worker节点,先看最下面的node节点,我们看到它上面运行一个pod,而pod的外面还有一层虚线,这层虚线就表示service,pod自己有一个ip 192.168.10.1,而service也有一个ip 192.168.9.1,为什么pod有而外面还要再包一层serviceip呢? 比如如果我们这个192.168.10.1的pod挂掉了,需要新的ip来替代,我们还是能通过service ip 192.168.9.1找到员选pod 的位置来替代它。

我们再看一下上面的两个node,一共是运行了3个node,在多个应用的情况下,一般都是同一个应用的多个副本,对一个应用进行扩容,从一个实例扩成了3个实例,对外提供相同的服务。这个时候 Service的ip除了能定位到pod的地址外,还可以对多个pod的地址进行负载均衡。 

 

哪些pod可以定位成一个service呢,k8s使用的方式是Label Selector,当定义service的时候,可以给他指定一个标签,比如app=B,这样一个key value对属于service B,那所有带app=B 标签的都是属于service B,然后它搜索所有的pod,

将app=B标签的pod归为seivice B,这让pod和service之间的耦合变得特别松。

 

下面我们看一下使用deployment进行应用扩容的过程,首先从master节点发起一个Deployment,想给Service的pod扩容成4个实例,目前只有一个实例。扩容的目标对象就是pod

 

扩容完成,service自动包含新的pod,它是通过标签知道新的pod的,多个pod就可以进行负载均衡。

 

 

 

 

 

 

 

下面我们看一下更新的过程,首先停掉了一个pod,又启动了一个新的pod,此时pod新的版本和旧的版本都存在,然后又停掉下面一个,启动一个新的。一直到

所有旧的停掉新的启动,service的扩容就完成了。在这个过程中,service的ip是不变的。

 

 

下面我们看一下k8s的整体架构,首先从总体上看,上面是master节点,下面有两块,分别是两个worker节点。

 

 

 

 

 

 

 

 

pod通讯有三种方式,一种是同一个pod之间的容器之间进行通信,这种方式使用localhost+端口就可以通讯,比较简单

 

第二种是同一个Node不同节点之间的通信,他们之间可以通过网桥进行通讯,访问方式通过pod ip直接访问

 

第三种是不同Node不同pod之间的通信,前提条件是pod的ip不能相同,并且pod的ip和node所在的ip关联起来,这样pod之间就可以相互访问。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值