ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker 与 K8S学习笔记(十五)—— 核心概念梳理

2022-01-15 23:35:05  阅读:193  来源: 互联网

标签:容器 Kubernetes ReplicaSet Label 梳理 Deployment Pod K8S Docker


Kubernetes中涉及很多概念,比如Pod、RC、Label啊等等,初次接触容易蒙圈,所以今天我们将一股脑将这些概念梳理清楚,为后续的学习扫除障碍,大家后面在学习过程中也可以不断翻查本篇内容,强化记忆与理解。

 

一、Pod

Pod是Kubernetes中创建和管理的、最小的可部署的计算单元。它其实是由一组容器组成(最少一个),这一组容器共享存储、网络、以及怎样运行这些容器的声明。一个Pod的组成示意图如下:

我们可以看出一个Pod有一个我们称之为“根容器”的Pause容器和多个用户业务容器组成,为什么要这么设计呢?

  • 当将一组容器作为一个基本单元时,可利用Pause容器这种业务无关的容器描述当前整个单元的状态;

  • Pod里多个业务容器共享Pause容器的IP和Volume,简化了业务容器间通信问题与文件共享问题。

 

二、ReplicaSet(加强版的RC)

ReplicaSet 的目的是维护一组在任何时候都处于运行状态的 Pod 副本的稳定集合,简单的说就是保障用户应用集群的高可用性,当集群Pod数小于设定值则补充,大于设定值则剔除多余的Pod。其实ReplicaSet就是加强版的RC,它与RC用法基本相同,不同的是ReplicaSet支持集合式的Label Selector。

这里需要注意:我们在实际使用时应该避免直接使用ReplicaSet,而是应该通过Deployment来创建ReplicaSet和Pod。

 

三、Deploment

Deploment是Kubernetes 1.2开始引入的新概念,其目的是为了更好解决Pod编排问题,为此Deploment在内部使用ReplicaSet来实现目的,Deployment通过管理ReplicaSet间接管理Pod,即Deployment管理ReplicaSet,ReplicaSet管理Pod。Deployment有如下几种使用场景:

  • 创建一个Deployment对象来生成对应的ReplicaSet并完成Pod副本的创建过程;

  • 通过检查Deployment的状态来判断部署是否完成;

  • 更新Deployment以创建新的Pod;

  • 如果当前Deployment不稳定则会滚到先前的一个版本;

  • 挂起或恢复一个Deployment。

 

四、Service(服务)

Service定义了外界访问一组Pod的方式,Service有自己的IP和端口,Service为这些Pod提供负载均衡。比如有一个文件上传应用,其后端应用有三个Pod副本,这三个副本由于会经常性被销毁重启,所以前端必然不能时刻维护这三个副本的地址,这时候Service的作用就体现出来了,它能解耦前端应用与后端应用的这种关联。

 

五、Label(标签)

一个Label是一组键值对,key、value都由用户定义,Lable可以附加在各种资源上,如Pod、ReplicaSet、Service等。一个资源对象可以定义任意数量的Label,同一个Label也能附加到任意数量的资源上,我们通过Lable可以实现多维度的资源分组管理能力,也可结合Label Selector实现类似SQL的对象查询机制。

 

六、Volume(存储卷)
Kubernetes中的Volume是Pod中能够被多个容器访问的共享目录,其概念、用途和目的与Docker中的Volume类似,但并不等价,首先Kubernetes的Volume定义在Pod上,然后被Pod内多个容器挂载;其次Kubernetes的Volume生命周期与Pod相同,但与容器的生命周期无关,当容器被终止或重启时,Volume中的数据也不会丢失;最后Kubernetes的Volume支持多种类型的实现如GlusterFS、Ceph等。

 

七、Namespace(命名空间)

试想,如果有多个用户或项目组使用同一个Kubernetes集群,那他们的应用该如何区分呢,答案就是Namespace。其通过将集群内的资源对象分配到不同Namespace中,形成逻辑上的不同分组,从而达到多组件件资源隔离的效果。

 

八、Annotation(注解)

Annotation与Label类似,也使用键值对形式进行定义,相比于Label,Annotation属于用户自定义的附加信息,主要方便外部工具进行获取或查找。

 

标签:容器,Kubernetes,ReplicaSet,Label,梳理,Deployment,Pod,K8S,Docker
来源: https://www.cnblogs.com/alalazy/p/15808449.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有