K8S基础概念,K8S基础概念简介

马肤

温馨提示:这篇文章已超过440天没有更新,请注意相关的内容是否还可用!

摘要:本文介绍了K8S基础概念。K8S即Kubernetes,是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它提供了强大的功能,如自动容灾、自我修复、滚动升级等,旨在简化容器化应用程序的部署和管理。通过Kubernetes,开发人员和运维人员可以更容易地管理大规模容器集群,提高应用程序的可靠性和效率。

K8S基础概念,K8S基础概念简介 第1张

MASTER

Kubernetes集群中的Master节点是集群控制节点,负责整个集群的管理和控制,所有对Kubernetes集群的控制命令都发送给它,它负责具体的执行过程,Master通常会占据一个独立的服务器(为了高可用部署,建议使用3台服务器),这是因为Master节点太重要了,它是整个集群的“首脑”,如果它宕机或不可用,那么对集群内应用的管理都将失效。

在Master上运行着以下关键进程:

1、Kubernetes API Server(kube-apiserver):提供HTTP Rest接口的关键服务进程,是Kubernetes里所有资源增、删、改、查等操作的唯一入口,也是集群控制的入口进程。

2、Kubernetes Controller Manager(kube-controller-manager):Kubernetes里所有资源对象的自动化控制中心,可以将其理解为资源对象的“大总管”。

3、Kubernetes Scheduler(kube-scheduler):负责资源调度(Pod调度)的进程,相当于公交公司的“调度室”。

在Master上通常还需要部署etcd服务,因为Kubernetes里的所有资源对象的数据都被保存在etcd中。

NODE

与Master一样,Node可以是一台物理主机,也可以是一台虚拟机,Node是Kubernetes集群中的工作负载节点,每个Node都会被Master分配一些工作负载(Docker容器),当某个Node宕机时,其上的工作负载会被Master自动转移到其他节点上。

在每个Node上都运行着以下关键进程:

1、kubelet:负责Pod对应容器的创建、启停等任务,同时与Master密切协作,实现集群管理的基本功能。

2、kube-proxy:实现Kubernetes Service的通信与负载均衡机制的重要组件。

3、Docker Engine(docker):Docker引擎,负责本机的容器创建和管理工作。

POD

Pod是Kubernetes最重要的基本概念,每个Pod除了包含一个或多个紧密相关的用户业务容器外,还有一个被称为“根容器”的Pause容器,Pause容器对应的镜像属于Kubernetes平台的一部分。

LABEL

Label(标签)是Kubernetes系统中的另一个核心概念,Label是一个key=value的键值对,其中key与value由用户自己指定,Label可以被附加到各种资源对象上,例如Node、Pod、Service、RC等,一个资源对象可以定义任意数量的Label,同一个Label也可以被添加到任意数量的资源对象上。

Label通常在资源对象定义时确定,也可以在对象创建后动态添加或删除,我们可以通过给指定的资源对象捆绑一个或多个不同的Label来实现多维度的资源分组管理功能,以便灵活、方便地进行资源分配、调度、配置、部署等管理工作。

Deployment

相对于RC,Deployment的一个最大升级是我们可以随时知道当前Pod“部署”的进度,由于创建一个Pod的完整过程需要一定时间,因此系统启动N个Pod副本的目标状态是一个连续变化的“部署过程”导致的最终状态。

Deployment的典型使用场景包括:创建Deployment对象来生成对应的ReplicaSet并完成Pod副本的创建;检查Deployment的状态来看部署动作是否完成;更新Deployment以创建新的Pod(比如镜像升级);如果当前Deployment不稳定,则回滚到一个早先的Deployment版本;暂停Deployment以便于一次性修改多个PodTemplateSpec的配置项,之后再恢复Deployment,进行新的发布;扩展Deployment以应对高负载;查看Deployment的状态,以此作为发布是否成功的指标;清理不再需要的旧版本ReplicaSet等。

Namespace

Namespace是Kubernetes系统中的另一个非常重要的概念,主要用于实现多租户的资源隔离,通过将集群内部的资源对象“分配”到不同的Namespace中,形成逻辑上分组的不同项目、小组或用户组,便于不同的分组在共享使用整个集群的资源的同时还能被分别管理,Kubernetes集群在启动后会创建一个名为default的Namespace。

Volume

Volume(存储卷)是Pod中能够被多个容器访问的共享目录,Kubernetes中的Volume概念与Docker的Volume类似,但两者并不等价,Volume被定义在Pod上,然后被Pod里的多个容器挂载到具体的文件目录下,Volume的生命周期与Pod的生命周期相同,但与容器的生命周期不相关,当容器终止或重启时,Volume中的数据也不会丢失,Kubernetes支持多种类型的Volume,例如GlusterFS、Ceph等先进的分布式文件系统。

Persistent Volume

Volume是定义在Pod上的计算资源的一部分,而Persistent Volume(PV)和与之相关的Persistent Volume Claim(PVC)则起到类似网络存储的作用,PV可以被理解成Kubernetes集群中的某个网络存储对应的一块存储,它与Volume类似,但也有以下区别:PV只能是网络存储,不属于任何Node,但可以在每个Node上访问;PV并不是定义在Pod上的,而是独立于Pod之外定义的。

ConfigMap

Kubernetes中的ConfigMap是一种用于存储非敏感配置数据的API资源,它可以用来存储应用程序、服务或其他组件所需的配置信息,如


0
收藏0
文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。

相关阅读

  • 【研发日记】Matlab/Simulink自动生成代码(二)——五种选择结构实现方法,Matlab/Simulink自动生成代码的五种选择结构实现方法(二),Matlab/Simulink自动生成代码的五种选择结构实现方法详解(二)
  • 超级好用的C++实用库之跨平台实用方法,跨平台实用方法的C++实用库超好用指南,C++跨平台实用库使用指南,超好用实用方法集合,C++跨平台实用库超好用指南,方法与技巧集合
  • 【动态规划】斐波那契数列模型(C++),斐波那契数列模型(C++实现与动态规划解析),斐波那契数列模型解析与C++实现(动态规划)
  • 【C++】,string类底层的模拟实现,C++中string类的模拟底层实现探究
  • uniapp 小程序实现微信授权登录(前端和后端),Uniapp小程序实现微信授权登录全流程(前端后端全攻略),Uniapp小程序微信授权登录全流程攻略,前端后端全指南
  • Vue脚手架的安装(保姆级教程),Vue脚手架保姆级安装教程,Vue脚手架保姆级安装指南,Vue脚手架保姆级安装指南,从零开始教你如何安装Vue脚手架
  • 如何在树莓派 Raspberry Pi中本地部署一个web站点并实现无公网IP远程访问,树莓派上本地部署Web站点及无公网IP远程访问指南,树莓派部署Web站点及无公网IP远程访问指南,本地部署与远程访问实践,树莓派部署Web站点及无公网IP远程访问实践指南,树莓派部署Web站点及无公网IP远程访问实践指南,本地部署与远程访问详解,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南。
  • vue2技术栈实现AI问答机器人功能(流式与非流式两种接口方法),Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法探究,Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法详解
  • 发表评论

    快捷回复:表情:
    评论列表 (暂无评论,0人围观)

    还没有评论,来说两句吧...

    目录[+]

    取消
    微信二维码
    微信二维码
    支付宝二维码