K8S相关核心概念

news2024/11/17 15:31:47

个人笔记:

要弄明白k8s的细节,需要知道k8s是个什么东西。它的主要功能,就是容器的调度--也就是把部署实例,根据整体资源的使用状况,部署到任何地方

注意任何这两个字,预示着你并不能够通过常规的IP、端口方式访问部署的实例。复杂性由此而生。 我们学k8s,就要看它要调度哪些资源。以传统的感觉来看,无非就是cpu、内存、网络、io等。在了解怎么对这些资源调度之前,先要搞懂什么叫Pod,这可是k8s的核心概念之一。 搞不懂Pod,就没法玩k8s。

1、K8S怎么发展来的:

在过去,多数的应用都是大型单体应用,以单个进程或几个进程的方式,运行
于几台服务器之上。这些应用的发布周期长,而且迭代也不频繁。每个发布周期结
束前, 开发者会把应用程序打包后交付给运维团队,运维人员再处理部署、监控事直,
并且在硬件发生故障时于动迁移应用。
今天, 大型单体应用正被逐渐分解成小的、可独立运行的组件,我们称之为微
服务。微服务彼此之间解耦, 所以它们可以被独立开发、部署、升级、伸缩。这使
得我们可以对每一个微服务实现快速迭代, 并且迭代的速度可以和市场需求变化的
速度保持一致。
但是, 随着部署组件的增多和数据中心的增长,配置、管理并保持系统的
正常运行变得越来越困难。如果我们想要获得足够高的资源利用率并降低硬件成
本,把组件部署在什么地方变得越来越难以决策。手动做所有的事情,显然不太可行。
我们需要一些自动化的措施,包括自动调度、配置、监管和故障处理。这正是
Kubernetes 的用武之地。
Kubernetes 使开发者可以自主部署应用,并且控制部署的频率,完全脱离运维
团队的帮助。Kubemetes 同时能让运维团队监控整个系统,并且在硬件故障时重新
调度应用。系统管理员的工作重心,从监管应用转移到了监管Kubernetes ,以及剩
余的系统资源,因为Kubernetes 会帮助监管所有的应用。

2、Pod pod是k8s调度的最小单元,包含一个或者多个容器(这里的容器你可以暂时认为是docker)。 Pod拥有一个唯一的IP地址,在包含多个容器的时候,依然是拥有一个IP地址,它是怎么办到的呢? xjjdog之前写过两篇Docker原理的文章,指出其中两个使用到的底层技术,就是namespace和cgroup,k8s在使用多个容器的时候,用到的就是共享namespace,这样Pod里的容器就可以通过localhost通信了,就像两个进程一样。同理的,Pod 可以挂载多个共享的存储卷(Volume),这时内部的各个容器就可以访问共享的 Volume 进行数据的读写。

3、微服务的扩容:
面向单体系统,扩容针对的是整个系统,而面向微服务架构,扩容却只需要针
对单个服务,这意味着你可以选择仅扩容那些需要更多资源的服务而保持其他的服
务仍然维持在原来的规模。如图1.2 所示,三种组件都被复制了多个,并以多进程
的方式部署在不同的服务器上,而另外的组件只能以单体进程应用运行。当单体应
用因为其中一部分无法扩容而整体被限制扩容时,可以把应用拆分成多个微服务,
将那些能进行扩容的组件进行水平扩展,不能进行扩容的组件进行垂直扩展。

 

 

4、Kubernetes 的核心功能
图1.8 展示了一幅最简单的Kubernetes 系统图。整个系统由一个主节点和若干
个工作节点组成。开发者把一个应用列表提交到主节点, Kubernetes 会将它们部署
到集群的工作节点。组件被部署在哪个节点对于开发者和系统管理员来说都不用
关心。

5、 

参考链接:

图解 K8s 核心概念和术语 - 后端进阶 - 博客园 (cnblogs.com)

k8s主要概念大梳理! - 腾讯云开发者社区-腾讯云 (tencent.com)

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

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

相关文章

如何全面学习Object-C语言的语法知识 (Xmind Copilot生成)

网址:https://xmind.ai/login/ 登录后直接输入:如何全面学习Object-C语言的语法知识,就可以生成大纲 点击右上角的 按钮,可以显示md格式的问题,再点击生成全文,就可以生成所有内容了, 还有这个…

CentOS7/8 安装 5+ 以上的Linux kernel

CentOS以稳定著称,稳定在另外一方面就是保守。所以CentOS7还在用3.10,CentOS8也才是4.18。而当前最新的Linux Kernel都更新到6.0 rc3了。其他较新的发行版都用上了5.10的版本。本文简单介绍如何在CentOS7、8上直接安装5.1以上版本的第三方内核。 使用ted…

5.8晚间黄金行情走势分析及短线交易策略

近期有哪些消息面影响黄金走势?本周黄金多空该如何研判? ​黄金消息面解析:周一亚洲时段,现货黄金小幅反弹,目前交投于2024.3美元/盎司附近,一方面是金价上周五守住了 2000 整数关口,逢低买盘涌…

java环境Springboot框架中配置使用GDAL,并演示使用GDAL读取shapefile文件

GDAL是应用广泛的空间数据处理库,可以处理几何、栅格数据,Springboot是常用的JAVA后端开发框架。本文讲解如何在Springboot中配置使用GDAL。本文示例中使用的GDAL版本为3.4.1(64位) 图1 GDAL读取shp效果 一、部署GDAL类库 将GDA…

什么是点对点传输?什么是点对多传输

点对点技术(peer-to-peer, 简称P2P)又称对等互联网络技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P网络通常用于通过Ad Hoc连接来连接节点。这类网…

WiFi(Wireless Fidelity)基础(四)

目录 一、基本介绍(Introduction) 二、进化发展(Evolution) 三、PHY帧((PHY Frame ) 四、MAC帧(MAC Frame ) 五、协议(Protocol) 六、安全&#x…

功能测试常用的测试用例大全

登录、添加、删除、查询模块是我们经常遇到的,这些模块的测试点该如何考虑 1)登录 ① 用户名和密码都符合要求(格式上的要求) ② 用户名和密码都不符合要求(格式上的要求) ③ 用户名符合要求,密码不符合要求(格式上的要求) ④ 密码符合要求,…

1_1torch学习

一、torch基础知识 1、torch安装 pytorch cuda版本下载地址:https://download.pytorch.org/whl/torch_stable.html 其中先看官网安装torch需要的cuda版本,之后安装cuda版本,之后采用pip 下载对应的torch的gpu版本whl来进行安装。使用pip安装…

Linux内核中的链表(list_head)使用分析

【摘要】本文分析了linux内核中的list_head数据结构的底层实现及其相关的各种调用源码,有助于理解内核中链表对象的使用。 二、内核中的队列/链表对象 在内核中存在4种不同类型的列表数据结构: singly-linked listssingly-linked tail queuesdoubly-lin…

SSM框架学习-bean生命周期理解

Spring启动,查找并加载需要被Spring管理的Bean,进行Bean的实例化(反射机制);利用依赖注入完成 Bean 中所有属性值的配置注入; 第一类Aware接口: 如果 Bean 实现了 BeanNameAware 接口的话&#…

Yolov8改进---注意力机制:CoTAttention,效果秒杀CBAM、SE

1.CoTAttention 论文:https://arxiv.org/pdf/2107.12292.pdf CoTAttention网络是一种用于多模态场景下的视觉问答(Visual Question Answering,VQA)任务的神经网络模型。它是在经典的注意力机制(Attention Mechanism)上进行了改进,能够自适应地对不同的视觉和语言输入进…

day28_mysql

今日内容 零、 复习昨日 一、函数[了解,会用] 二、事务[重点,理解,面试] 三、索引[重点,理解,面试] 四、存储引擎 五、数据库范式 六、其他 零、 复习昨日 见晨考 一、函数 字符串函数数学函数日期函数日期-字符串转换函数流程函数 1.1 字符串函数 函数解释CHARSET(str)返回字…

一个简单的watch以及ESModule导入和解构的区别

背景 最近写了个很有意思的方法,感觉还蛮不错的就分享一下。起先是我在写calss组件的时候遇到一个问题,我需要监听一个导入的值,导入的值最开始是undefined,经过异步操作以后会得到一个新的值,而我需要在这个class组件…

[echarts] legend icon 自定义的几种方式

echarts 官方配置项 地址 一、默认 图例项的 icon circle, rect, roundRect, triangle, diamond, pin, arrow, none legend: {top: 5%,left: center,itemWidth: 20,itemHeight: 20,data: [{icon: circle, name: 搜索引擎},{icon: rect, name: 直接访问},{icon: roundRect, n…

分布式系统---MapReduce实现(Go语言)

一、说明 本次实验是基于MIT-6.824的课程,详情请参见官网主页下载源代码 二、MapReduce原理 2.1 经典的分布式模型 MapReduce是经典的分布式模型。通过Map函数和Reduce函数实现。 分布式计算,就是利用多台机器,完成一个任务。关于分布式…

算法第一天力扣---2651. 计算列车到站时间

1.题目要求: 给你一个正整数 arrivalTime 表示列车正点到站的时间(单位:小时),另给你一个正整数 delayedTime 表示列车延误的小时数。 返回列车实际到站的时间。 注意,该问题中的时间采用 24 小时制。 示…

让ChatGPT猜你喜欢——ChatGPT后面的推荐系统

Chat GPT的大热,让人们的视线又一次聚焦于“人工智能”领域。通过与用户持续对话的形式,更加丰富的数据会不断滚动“雪球”,让Chat GPT的回答变得越来越智能,越来越接近用户最想要的答案。ChatGPT能否颠覆当下的推荐系统范式&…

第三章 灰度变换与空间滤波

第三章 灰度变换与空间滤波 3.1背景知识 ​ 空间域指图像平面本身。变换域的图像处理首先把一幅图像变换到变换域,在变换域中进行处理,然后通过反变换把处理结果返回到空间域。空间域处理主要分为灰度变换与空间滤波。 3.1.1 灰度变换和空间滤波基础 …

cmcc_simplerop

1,三连 2,IDA分析 溢出点: 偏移:0x144(错误) 这里动态重新测试了一下偏移: 正确偏移:0x20 3,找ROP 思路: 1、找系统调用号 2、ROPgadget找寄存器 3、写入/bin/sh ROPgadget --binary simpler…

7-2使用Redis构建任务队列

目录 7-2使用Redis构建任务队列 第1关:先进先出任务队列 1、rpush/lpush命令:rpush(name,values[values…]) 2、blpop:blpop(keys, timeout)和 lpop/rpop:lpop(name) 删并返回删除值 3、lpushx/rpushx:lpushx(name…