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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: Kubernetes中涉及很多概念,比如Pod、RC、Label啊等等,初次接触容易蒙圈,所以今天我们将一股脑将这些概念梳理清楚,为后续的学习扫除障碍,大家后面在学习过程中也可以不断翻查本篇内容,强化记忆与理解。 一、Pod Pod是Kubernetes中创建和管理的、最小的可部署的计算单元。它其实

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


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属于用户自定义的附加信息,主要方便外部工具进行获取或查找。

 

分类: 容器技术

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
11天前
|
Kubernetes Java Docker
利用(K8S)配合Docker部署jar包
通过Docker打包并部署到Kubernetes(K8S)集群的过程。首先,通过SpringBoot生成jar包,接着在K8S环境中创建并编辑Dockerfile文件。随后构建Docker镜像,并将其推送到镜像仓库。最后,通过一系列kubectl命令(如get pods、get svc、logs等),展示了如何在K8S中管理应用,包括查看Pod状态、服务信息、Pod日志以及重启Pod等操作。
59 2
|
9天前
|
Ubuntu Linux pouch
Docker容器管理工具
文章介绍了Docker容器管理工具,以及早期使用的LXC容器管理工具,包括它们的安装、使用和相关技术特点。
38 10
Docker容器管理工具
|
6天前
|
Cloud Native 持续交付 Docker
云原生技术实践:Docker容器化部署教程
【9月更文挑战第4天】本文将引导你了解如何利用Docker这一云原生技术的核心工具,实现应用的容器化部署。文章不仅提供了详细的步骤和代码示例,还深入探讨了云原生技术背后的哲学,帮助你理解为何容器化在现代软件开发中变得如此重要,并指导你如何在实际操作中运用这些知识。
|
11天前
|
Kubernetes Cloud Native 开发者
探索云原生技术:从Docker到Kubernetes的旅程
【8月更文挑战第31天】云原生技术正在改变软件开发、部署和运维的方式。本文将带你了解云原生的核心概念,并通过实际代码示例,展示如何使用Docker容器化应用,并进一步通过Kubernetes进行集群管理。我们将一起构建一个简单的微服务架构,体验云原生带来的高效与便捷。
|
11天前
|
Kubernetes Cloud Native 云计算
云原生入门:从Docker到Kubernetes的旅程
【8月更文挑战第31天】 在数字化转型的浪潮中,云原生技术成为推动现代软件开发的关键力量。本文将引导读者理解云原生的基本概念,通过Docker和Kubernetes的实际应用示例,展示如何在云平台上部署和管理容器化应用。我们将一起探索服务编排、持续集成和微服务架构的实践之路,旨在为初学者揭开云原生技术的神秘面纱,并激发对这一前沿领域的深入探索。
|
11天前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【8月更文挑战第31天】 在云原生的世界里,容器技术是基石。本文将带你了解如何通过Kubernetes和Docker这两个强大的工具,搭建起你的云原生应用架构。我们将一起探索它们如何相互配合,提升开发与运维的效率。准备好了吗?让我们启航,探索云原生的奥秘!
|
11天前
|
Kubernetes Cloud Native 开发者
云原生入门:从Docker到Kubernetes的旅程
【8月更文挑战第31天】在数字化浪潮中,云原生技术如同一艘航向未来的船,承载着企业转型的梦想。本文将带领读者从Docker容器的基础出发,一路驶向Kubernetes的广阔海域。通过浅显易懂的语言和实用的代码示例,我们将探索云原生的核心概念、架构设计以及如何在实际项目中应用这些技术。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供一次宝贵的学习之旅。让我们一起启航,发现云原生的魅力!
|
Kubernetes 负载均衡 Linux
Docker从入门到掉坑(四) 国内搭建k8s避坑指南
Docker从入门到掉坑(四) 国内搭建k8s避坑指南
411 0
|
存储 JSON Kubernetes
Docker从入门到掉坑(五):继续挖一挖 k8s
Docker从入门到掉坑(五):继续挖一挖 k8s
Docker从入门到掉坑(五):继续挖一挖 k8s
|
Kubernetes 负载均衡 Linux
Docker从入门到掉坑(四):上手k8s避坑指南
Docker从入门到掉坑(四):上手k8s避坑指南
Docker从入门到掉坑(四):上手k8s避坑指南