Kubernetes原理浅析

传统部署时代: 早期,组织在物理服务器上运行应用程序。无法为物理服务器中的应用程序定义资源边界,这会导致资源分配问题。例如,如果在物理服务器上运行多个应用程序,则可能会出现一个应用程序占用大部分资源的情况,结果可能导致其他应用程序的性能下降。一种解决方案是在不同的物理服务器上运行每个应用程序,但是由于资源利用不足而无法扩展,并且组织维护许多物理服务器的成本很高。

虚拟化部署时代: 作为解决方案,引入了虚拟化功能,它允许您在单个物理服务器的 CPU 上运行多个虚拟机(VM)。虚拟化功能允许应用程序在 VM 之间隔离,并提供安全级别,因为一个应用程序的信息不能被另一应用程序自由地访问。

因为虚拟化可以轻松地添加或更新应用程序、降低硬件成本等等,所以虚拟化可以更好地利用物理服务器中的资源,并可以实现更好的可伸缩性。

每个 VM 是一台完整的计算机,在虚拟化硬件之上运行所有组件,包括其自己的操作系统。

容器部署时代: 容器类似于 VM,但是它们具有轻量级的隔离属性,可以在应用程序之间共享操作系统(OS)。因此,容器被认为是轻量级的。容器与 VM 类似,具有自己的文件系统、CPU、内存、进程空间等。由于它们与基础架构分离,因此可以跨云和 OS 分发进行移植。

容器当下大家比较熟知的是docker,而Kubernetes可以看作docker的管理工具。

为什么需要Kubernetes?

真正的生产型应用会涉及多个容器。这些容器必须跨多个服务器主机进行部署。容器安全性需要多层部署,因此可能会比较复杂。但 Kubernetes 有助于解决这一问题。简单来说,就是Kubernetes 可以帮助开发者构建跨多个容器的应用服务、跨集群调度、扩展这些容器,并长期持续管理这些容器的健康状况。

专业术语:

主机(Master): 用于控制 Kubernetes 节点的计算机。所有任务分配都来自于此。

API SERVER:用户不论用命令行还是图形界面,请求都发送至api server,内部系统与外部用户也通过相同的api通信

etcd:存储集群的配置和状态,主节点通过etcd查询节点,容器与容器的状态参数

Controllers:从api server获取到所需状态,控制节点的当前状态,有差异就解决

Scheduler:监听来自api的新请求,对节点进行排名,把pod部署到合适的节点,不合适就先挂着不部署

 

节点(Node):负责执行请求和所分配任务的计算机。由 Kubernetes 主机负责对节点进行控制。

 

容器集(Pod):被部署在单个节点上的,且包含一个或多个容器的容器组。同一容器集中的所有容器共享同一个 IP 地址、IPC、主机名称及其它资源。容器集会将网络和存储从底层容器中抽象出来。这样,您就能更加轻松地在集群中移动容器。

Kubelet:运行在节点上的服务,1.监视来自api的任务,执行任务,并向主节点报告。2.监视pod,pod有问题会向控制程序报告,控制程序会改变分配策略。

Container Runtime:容器运行时从镜像库拉取镜像。

kube-proxy:让每个节点获得他的IP地址,实现负载均衡。

复制控制器(Replication controller):用于控制应在集群某处运行的完全相同的容器集副本数量。

 

当pod有问题时,kubernetes会创造一个和原来一样的pod,但是IP不一样。service用来解决这个问题。

服务(Service):将工作内容与容器集分离。Kubernetes 服务代理会自动将服务请求分发到正确的容器集——无论这个容器集会移到集群中的哪个位置,甚至可以被替换掉。

 

Kubernetes 工作的简单流程:

主机(master)接收开发者的命令,自动选择从属节点(node)进行分发,之后它将在该节点分配资源,并指派容器集来完成任务请求。

当 kubernetes 将容器集调度到一个节点上时,该节点上的 kubelet 会发送指令让 docker 启动指定的容器。kubelet 随后会不断从 docker 收集这些容器的状态,并将这些信息汇集至主机。

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

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

相关文章

mac上python3安装HTMLTestRunner

下载支持python3版本的HTMLTestRunner.py文件后,拷贝到python3的lib目录下 在终端输入如下命令: 将HTMLTestRunner.py文件拷贝到如下目录后,pycharm中就可以import HTMLTestRunner 转载于:https://www.cnblogs.com/yrxns/p/9857812.html

从Bengio的NPS模型看AGI的实现通路

来源:混沌巡洋舰这两天深度学习祖师Yoshua Bengio 的 Neural Production System 刷新了AI圈子。与以往的深度学习套路不同的是, 这篇文章有效的把符号主义AI对人类认知的模拟与深度学习结合, 得到了一个能够学习规则的神经机器。我们先来看下…

burp的intruder报错Payload set 1: Invalid number settings

使用burp对某一参数进行测试时,当类型为numbers时,报如下错误: 解决方法: 先点击Go back 之后:在Decimal,Hex两个选项之间来回点就好了

列表表格及媒体元素

一.列表 信息资源的一种展示形式 二.列表的分类 1.有序列表 <ol> <li>列表项1</li> <li>列表项2</li> </ol> 特性&#xff1a; 1.有顺序&#xff0c;每一个li独占一行 2.默认每一个li前有顺序标识 2.无序列表 <…

机器学习漫谈:深度学习的辉煌

来源&#xff1a;王宏琳科学网博客如今&#xff0c;当有人提到人工智能引起社会变革潜力时&#xff0c;他们很可能是在谈论机器学习中的人工神经网络。当一篇文章谈人工神经网络突破性进展时&#xff0c;作者很可能指的是深度学习。人工神经网络是一种非线性统计建模工具&#…

idea中每次push/pull都需要输入账号密码

在terminal中输入git config --global credential.helper store 之后再输入一次账号密码 以后就可以免输入账号密码了

windows 启动停止 java进程

本案例以 xxx.jar 为列子 我们一般启动的jar 在任务管理器中查看进程都是javaw.exe &#xff0c;无法用命令来 kill,所以我们得给自己的java 进程设置个新 title 1: 首先将C:\Program Files\Java\jdk1.8.0_45\bin目录下的javaw.exe文件复制一份重命名为你需要运行的jar的标…

μ子刷屏的背后:说「新物理学即将现身」还为之过早

用于 μ 子 g-2 实验的巨型电磁体抵达费米实验室。这个磁体于 1990 年代制造于布鲁克海文实验室&#xff0c;并在 2000 年代早期由该实验室使用&#xff0c;但之后被运送到了费米实验室&#xff0c;进行这个新的且目前仍在持续的实验。来源&#xff1a;机器学习研究组订阅对一个…

创建SpringBoot项目时出现Cannot resolve plugin org.springframework的解决方法

原因是添加依赖时未添加版本号 解决方法&#xff1a; 在pom.xml文件中的依赖添加版本号 原来&#xff1a; <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin> <plu…

mybatis自学笔记-1

从昨天开始对mybatis突然有了很深的兴趣&#xff0c;主要原因在于这几天的项目采用的是smm&#xff0c;以后使用mybatis的概率也是非常大&#xff0c;抱着一劳永逸的想法&#xff0c;选了这几天的黄道吉日就把mybatis给办了吧。笔记主要参考mybatis的官网&#xff0c;在此给出链…

迈向智能世界2030的九大技术挑战与研究方向

来源&#xff1a;华为在2021华为全球分析师大会上&#xff0c;华为董事、战略研究院院长徐文伟发布了迈向智能世界2030的九大技术挑战与研究方向&#xff0c;呼吁产学研精诚合作&#xff0c;以开放包容、协同创新的机制&#xff0c;汇集全人类的智慧和创新能力&#xff0c;满足…

获取axios的return值

因axios返回值是异步操作&#xff0c;获取返回值时&#xff0c;请求操作还未完成&#xff0c;就已经执行了赋值&#xff0c;导致结果位undefined。错误示例如下&#xff1a; 1 2 3 4 5 6 7 8 9 10 function GetData(){ let data; axios.get(请求地址, { p…

VM虚拟机下配置centos linux系统

如果配置中出现错误,请参照下列文档参照: 1. linux关于connect: network is unreachable 问题的解决 https://blog.csdn.net/liu911025/article/details/73431468/ 2. Centos 配置eth0 提示Device does not seem to be present https://blog.csdn.net/xiaobei4929/article/de…

LeetCode 之算法篇(1)——排序

本篇文章做leetcode的一些内容总结 文章目录 题目合并区间轮转数组 题目 合并区间 解题思路&#xff1a;先排序后遍历 1、首先&#xff0c;按照区间的起始位置对所有区间进行排序。 2、接着&#xff0c;遍历排序后的区间&#xff0c;依次合并重叠的区间。具体做法是比较当前区…

2021年AI将改变制造业的6大应用趋势

来源&#xff1a;先进制造业▍一、用于缺陷检测的深度学习在制造中&#xff0c;生产线中的缺陷检测过程变得越来越智能。深度神经网络集成使计算机系统可以识别诸如刮擦&#xff0c;裂纹&#xff0c;泄漏等表面缺陷。通过应用图像分类&#xff0c;对象检测和实例分割算法&#…

RequestMapping注解的继承问题

RequestMapping注解被用来注明访问路径&#xff0c;例如: RequestMapping("/data") RequestMapping("/user/list") 在写代码的时候遇到了there is already xxxx been method的错误&#xff0c;显示之前已经被注入&#xff0c;发现是父类中有相同的Reque…

神经科学家为视力受损的人研发新技术

来源&#xff1a;IEEE电气电子工程师作者&#xff1a;Megan Scudellari有许多可穿戴和便携式设备&#xff0c;旨在改善盲人和视力受损者的生活&#xff08;在某些情况下&#xff0c;甚至恢复视力&#xff09;。这些装置已经被开发用于身体的几乎每个部位&#xff1a;手指、手腕…

用机器指令和汇编指令编程(修改版)

实验名称 用机器指令和汇编指令编程(1)实验日期 2018.10.22 学院&#xff1a;计软院 专业&#xff1a;计算机科学与技术 年级&#xff1a;2017级班次&#xff1a;5班 姓名&#xff1a;陈奕明 学号 20171308194一、实验目的 1. 掌握使用debug工具编写和调试汇编命令的方…

Leetcode--763. 划分字母区间

字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段&#xff0c;同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。 示例 1&#xff1a;输入&#xff1a;S "ababcbacadefegdehijhklij" 输出&#xff1a;[9,7,8] 解释&a…

学术交流丨魏子卿院士:北斗坐标系

来源&#xff1a;微信公众号中国测绘学会引文格式&#xff1a;魏子卿, 吴富梅, 刘光明. 北斗坐标系[J]. 测绘学报&#xff0c;2019&#xff0c;48(7)&#xff1a;805-809. DOI: 10.11947/j.AGCS.2019.20190131第一作者&#xff1a;魏子卿&#xff08;中国工程院院士&#xff0c…