认识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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity学习(40)——创建(create)角色脚本(panel)——UI

1.点击不同的头像按钮,分别选择职业1和职业2,create脚本中对应的函数。 2.调取inputfield中所输入的角色名(限制用户名长度为7字符),但愿逆向的服务器可以查重名: 3.点击头衔,显示选择的职业&a…

SpringBootWeb请求响应

SpringBootWeb请求响应 这里写目录标题 SpringBootWeb请求响应前言1. 请求1.1 Postman1.1.1 介绍1.1.2 安装 1.2 简单参数1.2.1 原始方式1.2.2 SpringBoot方式1.2.3 参数名不一致 1.3 实体参数1.3.1 简单实体对象1.3.2 复杂实体对象 1.4 数组集合参数1.4.1 数组1.4.2 集合 1.5 …

前端解析后端返回文件流格式数据

当后端接口返回数据是一个文件流数据时,如下后端返回给我的是一个pdf文件流数据 methods: {gotoPri() {protocolApi().then(res > {this.createPdf(res.data,XXX协议)})},createPdf(res, name) {// Blob构造函数返回一个新的 Blob 对象并指定type类型。let blob …

js设计模式:外观模式

作用: 将复杂的功能封装成可以简单调用的方法,无需知道内部的具体逻辑,只需要知道怎么去使用 类似于一把枪,你可以不知道内部的枪机,击发机,复进簧,枪管,导气装置,弹夹是怎么合作配合完成发射和自动填弹,你只需要知道你扣动扳机就能完成这一系列复杂的操作,而那个扳机就是外观…

k8s学习笔记-基础概念

(作者:陈玓玏) deployment特别的地方在于replica和selector,docker根据镜像起容器,pod控制容器,job、cronjob、deployment控制pod,job做离线任务,pod大多一次性的,cronj…

pstree命令

pstree 是一个在类 Unix 系统中广泛使用的命令行工具,主要用于以树状结构可视化当前系统中进程之间的关系。这个命令显示的是进程间的父子关系,从一个初始进程(通常是 init 或 systemd)开始,逐级展示每个进程及其子进程…

【大数据】Flink 内存管理(三):TaskManager 内存分配(理论篇)

Flink 内存管理(三):TaskManager 内存分配 1.配置 Total Memory2.配置 Heap and Managed Memory2.1 Task (Operator) Heap Memory2.2 Managed Memory 3.配置 Off-Heap Memory(Direct or Native)4.详细内存模型5.Framew…

广联达Linkworks GetAllData 信息泄露漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

!!!Python虚拟环境改名后的坑!!!!

搞了一晚上终于弄好这python虚拟环境的问题了!真的是坑啊! 本来用的纯python环境下的虚拟环境,一时心血来潮,把电脑重新装了一遍,虚拟环境的目录也改了一下,结果虚拟环境再vscode中是可以使用,…

0基础JAVA期末复习最终版

啊啊啊啊啊啊啊啊啊啊,根据网上各位大佬的复习资料,看了很多大多讲的是基础但对内容的整体把握上缺乏系统了解。但是很不幸最终挂科了,那个出题套路属实把我整神了,所以我决定痛改前非,酣畅淋漓的写下这篇文章。。。。…

故障诊断 | 一文解决,PSO-BP粒子群算法优化BP神经网络模型的故障诊断(Matlab)

文章目录 效果一览文章概述模型描述源码设计参考资料效果一览 文章概述 故障诊断 | 一文解决,PSO-BP粒子群算法优化BP神经网络模型的故障诊断(Matlab) 粒子群优化算法(Particle Swarm Optimization, PSO)是一种群体智能优化算法,用于求解优化问题。BP神经网络是一种用于模…

MFC由初值终值步长生成数值序列

matlab的冒号运算符可以生成数值序列; 下面来生成自己的数值序列; vc6新建一个对话框工程; 放几个控件;添加成员变量如下; void CMycolonDlg::OnButton1() {// TODO: Add your control notification handler code hereUpdateData(TRUE);double d1, d2;CString str1, …

vue 中实现音视频播放进度条(满足常见开发需求)

由于开发需要,作者封装了一个音视频播放进度条的插件,支持 vue2 及 vue3 ,有需要的朋友可联系作者,下面是对该款插件的介绍。 插件默认样式👇(插件提供了多个配置选项,可根据自身需求进行个性化…

基于Java+SSM+Jsp宿舍管理系统(源码+演示视频+包运行成功+Maven版)

您好,我是码农小波(wei158888),感谢您阅读本文,欢迎一键三连哦。 ❤️ 1. 毕业设计专栏,毕业季咱们不慌,上千款毕业设计等你来选。 目录 1、项目背景 2、项目演示 3、使用技术 4、系统设计 …

freemarker模板引擎结合node puppeteer库实现html生成图片

效果图: 先看效果图,以下是基于freemarker模板渲染数据,puppeteer加载html中的js及最后图片生成: 背景: 目前为止,后台java根据html模板或者一个网页路径生成图片,都不支持flex布局及最新的c…

buuctf_N1BOOK_粗心的小李

题目&#xff1a; 看完题目&#xff0c;git下载文件&#xff1f;然后将.git文件传到线上环境&#xff1f;&#xff08;which 会造成git泄露的安全威胁&#xff09;<这个背景抱歉我不太了解哈&#xff0c;可能后续有补充> 这里主要记录做法过程&#xff1a; 工具&#xf…

BlackberryQ10 是可以安装 Android 4.3 应用的,Web UserAgent 版本信息

BlackberryQ10 是可以安装 Android 4.3 应用的 最近淘了个 Q10 手机&#xff0c;非常稀罕它&#xff0c;拿着手感一流。这么好的东西&#xff0c;就想给它装点东西&#xff0c;但目前所有的应用都已经抛弃这个安卓版本了。 一、开发环境介绍 BlackBerry Q10 的 安卓版本是 4.…

队列基础练习(C语言实现)

目录 队列基础练习 用队列实现栈 用栈实现队列 设计循环队列 队列基础练习 用队列实现栈 题目链接&#xff1a;225. 用队列实现栈 - 力扣&#xff08;LeetCode&#xff09; 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部…

高通XBL阶段读取分区

【需求】&#xff1a; 在某些场景下&#xff0c;需要在XBL阶段读取分区数据&#xff0c;需要验证xbl阶段方案 这里主要以裸分区为例&#xff0c;比如oem分区。 1、创建一个1MB大小的oem.img&#xff0c;写入内容“test oem partition” 创建方式&#xff1a; dd if/dev/null …

图片Base64编码解码的优缺点及应用场景分析

title: 图片Base64编码解码的优缺点及应用场景分析 date: 2024/2/24 14:24:37 updated: 2024/2/24 14:24:37 tags: 图片Base64编码解码HTTP请求优化网页性能加载速度安全性缓存机制 随着互联网的迅猛发展&#xff0c;图片在网页和移动应用中的使用越来越广泛。而图片的传输和加…