认识K8S

K8S

K8S 的全称为 Kubernetes (K12345678S)

是一个跨主机容器编排工具

作用

用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。 可以理解成 K8S 是负责自动化运维管理多个容器化程序(比如 Docker)的集群,是一个生态极其丰富的容器编排框架工具。

由来

K8S由google的Borg系统(博格系统,google内部使用的大规模容器编排工具)作为原型,后经GO语言延用Borg的思路重写并捐献给CNCF基金会开源。

K8S特点

弹性伸缩:Kubernetes 可以自动扩展和收缩容器,根据负载进行自动调整。

自动容器部署和管理:Kubernetes可以自动化容器部署和管理,无需手动干预

容器编排:Kubernetes 支持多层容器编排,使得容器的关系更加复杂和灵活。

负载均衡:Kubernetes 可以在多个节点上自动分配负载,实现负载均衡。

容器健康检查和自动恢复:kubernetes 可以自动检查容器状态,如果发现出现故障可以自动恢复。

容器存储管理:Kubernetes 可以管理容器的存储,包括存储卷、存储卷模板等功能。

K8S 集群架构与组件

K8S 是属于主从设备模型(Master-Slave 架构),即有 Master 节点负责集群的调度、管理和运维,Slave 节点是集群中的运算工作负载节点。 在 K8S 中,主节点一般被称为 Master 节点,而从节点则被称为 Worker Node 节点,每个 Node 都会被 Master 分配一些工作负载。

Master 组件可以在群集中的任何计算机上运行,但建议 Master 节点占据一个独立的服务器。因为 Master 是整个集群的大脑,如果 Master 所在节点宕机或不可用,那么所有的控制命令都将失效。除了 Master,在 K8S 集群中的其他机器被称为 Worker Node 节点,当某个 Node 宕机时,其上的工作负载会被 Master 自动转移到其他节点上去。

架构

K8S有master和worker node 两类节点

master节点

负责K8S集群的管理和资源调度等运维工作

组件
组件作用
apiserver是所有服务请求的同意访问入口
controller-manager控制器管理器,负责管理K8S各种资源对象的开专区;通过apiserver监控整个K8S集群的资源状态,并确保资源始终处于预期的工作状态
scheduler资源调度器,负责POD资源的调度,通过调度算法(预选/优选策略)为要部署的pod选择最合适的node节点
etcdK8S集群的数据库,是一种键值对存储结构的分布式数据库,负责存储K8S集群所有的重要信息,并且只有apiserver拥有访问和读写权限

wocker node节点

负责运行工作负载,即容器应用

组件
组件说明
kubelet接收apiserver发来的请求,创建管理pod和容器,跟容器引擎交互实现对容器生命周期的管理;收集node节点的资源信息和pod的运行状态发送给apiserver
kub-proxy作为service资源的载体,实现对pod的网络代理,负载维护pod集群网络规则和四层代理工作
容器引擎运行管理容器

K8S创建pod资源的工作流程

1.用户通过客户端发送创建pod的请求给apiserver

2.apiserver接收到请求后,会先把请求信息写入到etcd中保存,再找controller-manger根据请求信息的资源预设模板创建pod资源

3.controller-manager通过apiserver找scheduler 调度新创建的pod,schedulert通过调度算法的预选策略和优选策略筛选出最合适的node节点进行调度。

4.scheduler通过apiserver找对应的node节点上的kubelet去创建和管理Pod,kubelet会跟容器引擎交互,来管理Pod及其容器的生命周期。

5.用户还可以通过apiserver在kube-proxy上写入iptable或者ipvs网络规则,创建service资源,实现对Pod集群网络代理。

K8S核心资源对象

Pod

  • 是K8S能够创建和管理的最小的单位,一个Pod里可以包含一个或多个应用容器。

  • 同一个Pod里的容器之间共享网络、存储等资源。通过localhost互相访问

  • 不同的 Pod 之间的容器不能用 localhost 访问,也不能挂载其他 Pod 的数据卷。

Pod控制器

管理在Pod副本的控制器

控制器说明
deployment部署无状态应用,同时也负责reolicaset(维持Pod副本数十种符合预期状态)和Pod(容器化的应用程序)
statefulset部署有状态应用
daemonset在所有node节点上都部署同一种的Pod
job一次性的部署短期任务的Pod(执行完任务后会自动退出的容器应用)
cronjob周期性的部署短期任务的Pod(执行完任务后会自动退出的容器应用)

service

  • 在K8S集群内部,为通过标签选择器相关联的一组Pod提供一个统一的访问入口(clusterIP),只支持四层代理转发

  • service通过标签选择器关联Pod的标签,从而自动发现相关Pod的端口(PodIP:Port)

ingress

  • 作为K8S集群外部的访问入口,可定义ingress规则根据用于请求的域名或URL请求路径转发给指定的service,支持七层代理转发

  • ingress通过配置规则将不同的域名或URL路径关联不同的service资源

K8S资源配置信息

说明
apiversion指定资源对象的在K8S中使用的api接口版本
kind指定资源对象的类型
metadata指定资源对象的元数据信息,比如name指定资源名称、namespace指定命名空间、annotation指定注释、label指定标签
spec指定资源对象的资源配置清单(配置属性) ,比如副本数、镜像、网络模式、存储卷、label selector标签选择器
status资源对象在当前的运行状态信息

label

标签,是 K8S 特色的管理方式,便于分类管理资源对象。

给某个资源对象定义了一个label,就相当于给它打了一个标签

label selector

用于查询和筛选拥有相关标签的资源对象

两种标签选择器:基于等值

annotation

与label类似,但是没有任何匹配和筛选的效果

注释,用作于资源对象的注释信息;还可以在一些特殊的资源对象里用作于设置额外的功能特性

name

资源名称

namespace

命名空间,用于隔离资源名称的。在同一个命名空间中,同类型的资源对象的名称是唯一

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/398712.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入理解java虚拟机---自动内存管理

2.2 运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是依赖用户线程的启动和结束而建立和销…

基于python社交网络大数据分析系统的设计与实现

项目:基于python社交网络大数据分析系统的设计与实现 摘 要 社交网络大数据分析系统是一种能自动从网络上收集信息的工具,可根据用户的需求定向采集特定数据信息的工具,本项目通过研究爬取微博网来实现社交网络大数据分析系统功能。对于采集…

Echarts图例如何将选中与未选中状态配置成不同图形

背景 使用Echarts实现功能过程中,由于用户感觉Echarts图例的原生图案(例如圆形)不能直观地表现出该处可以点击筛选展示,故设计将选中的图例与未选中的图例设置成两种不同的图形(多为勾选与未勾选)。Echarts原生功能可以配置图例图案,但无法直…

[C#]winform基于opencvsharp结合CSRNet算法实现低光图像增强黑暗图片变亮变清晰

【算法介绍】 "Conditional Sequential Modulation for Efficient Global Image Retouching" 是一种图像修饰方法,主要用于对图像进行全局的高效调整。该方法基于深度学习技术,通过引入条件向量来实现对图像特征的调制,以达到改善…

- 工程实践 - 《QPS百万级的有状态服务实践》04 - 服务一致性

​​​​​ 本文属于专栏《构建工业级QPS百万级服务》 继续上篇《QPS百万级的有状态服务实践》03 - 消息队列。目前我们的系统如图1,已经可以完成数据生产和更新。但是目前我们的业务是分布式集群,每台机器收到的的消息时间不一样,那每…

[经验] 玄殿社区qq堂4.2 #笔记#媒体

玄殿社区qq堂4.2 1、玄殿 玄殿,位于中国北京市的紫禁城内,是明清两代帝王祭天的场所。玄殿前殿为皇帝向神明祭拜的地方,中殿为祭天的主要场所,后殿为宋代遗址。玄殿规模庞大,身为中国传统建筑的代表之一,…

《Linux运维总结:Ubuntu22.04忘记root密码解决方案》

一、解决方法 1、首先重新启动Ubuntu系统,然后快速按下shift键,以调出grub启动菜单,如下图所示: 2、在这里我们选择第二个(Advance options for Ubuntu),选中后按下Enter键,如下图所…

【经验分享】自然语言处理技术有哪些局限性和挑战?

个人认为,主要是两个难点: 1.语料,通常的语料很好解决,用爬虫从互联网上就可以采集和标注训练。但是我们接触很多项目和客户需求都是专业性很强的,例如:航天材料、电气设备、地理信息、化学试剂 等等。往往…

虹科方案 | 释放总线潜力:汽车总线离线模拟解决方案

来源:虹科汽车智能互联 虹科方案 | 释放总线潜力:汽车总线离线模拟解决方案 原文链接:https://mp.weixin.qq.com/s/KGv2ZOuQMLIXlOiivvY6aQ 欢迎关注虹科,为您提供最新资讯! #汽车总线 #ECU #汽车网关 导读 传统的…

docker安装一系列镜像

启动docker systemctl start docker docker 启动已经停止的容器 docker start idOrName PS:idOrName为容器的id或者名称 1、安装mysql镜像 拉取mysql5.7的镜像 docker pull mysql:5.7 查看镜像 docker images 启动mysql #启动mysql docker run --name mysql…

【 Maven 】花式玩法之多模块项目

目录 一、认识Maven多模块项目 二、maven如何定义项目的发布策略 2.1 版本管理 2.2 构建配置 2.3 部署和发布 2.4 依赖管理 2.5 发布流程 三、使用Jenkins持续集成Maven项目 四、总结 如果你有一个多模块项目,并且想将这些模块发布到不同的仓库或目标位置&…

中科大计网学习记录笔记(十四):多路复用与解复用 | 无连接传输:UDP

前言: 学习视频:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程 该视频是B站非常著名的计网学习视频,但相信很多朋友和我一样在听完前面的部分发现信…

gitlab 项目上线,项目上线后回滚

gitlab 项目上线,项目上线后回滚 1.需要自己有个gitlab项目环境,没有找我,docker-compose 一键环境启动 2.发起合并请求3.选择合并的分支4.点击创建合并,然后确认合并合并完成,进行回滚操作,在合并详情页…

【小样本命名实体识别】COPNER论文源码详解

COPNER: Contrastive Learning with Prompt Guiding for Few-shot Named Entity Recognition 原文与代码链接: https://github.com/AndrewHYC/COPNER 一、项目结构 二、代码分析 1.定义参数 配置训练环境 parser.add_argument(--gpu, default0,helpthe gpu num…

Java基于SSM的羽毛球馆管理系统,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

halide package cmake的设置方式

1 先找一个例程。里面用到halide。 这时会提示找不到package。 按照那个提示做就行。 2 把提前下载好的halide放到一个位置 3 然后设置一下那个Halide_DIR就可以了 set(Halide_DIR "${CMAKE_SOURCE_DIR}/your_path/Halide/") list(APPEND CMAKE_PREFIX_PATH ${Ha…

认识ansible,了解常用的模块

ansible的概念 Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。 Ansible能批量配置、部署、管理上千台主…

Tuxera NTFS2024最新中文版支持M1/M2/M3苹果全系机型

Tuxera NTFS的传输速度会受到多种因素的影响,包括硬件配置、文件大小、存储设备的性能等。因此,无法给出具体的传输速度数值。 不过,根据一些用户的使用经验和测试数据,Tuxera NTFS的传输速度通常都非常快,能够满足大…

深度解析Sora的核心技术

Sora要解决的核心问题 Sora面临的挑战是将不同类型的视觉信息,如视频、文本、图像和声音等,整合为一种共同的表征形式。这种转换是实现统一训练过程的关键,旨在将各类数据集中到一个训练框架中,以便于进行大规模的统一学习。简而…

计算机视觉的应用24-ResNet网络与DenseNet网络的对比学习,我们该如何选择。

大家好,我是微学AI,今天给大家介绍一下计算机视觉的应用24-ResNet网络与DenseNet网络的对比学习,我们该如何选择。在计算机视觉领域,ResNet(残差网络)和DenseNet(密集网络)都是深度学…