搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
AllinToyou
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
如何优化让日志处理速达到 5万/s?_日志处理能力
2
Leetcode---两整数之和--不用加减_两整数之后不用加减
3
vue3+ts项目在vscode中爆红提示修复_allowimportingtsextensions标红
4
2023年网络安全学习路线(看这一篇就够了)
5
Android 自定义下拉菜单的实现(基于PopupWindow+RecyclerView)_android 下拉菜单
6
详解ResNet(深度残差网络)
7
unity2D学习(2)Tilemap绘制地图_unity2d绘制不了地图
8
huggingface镜像网站
9
CWE学习(一)_exposure of sensitive information to an unauthoriz
10
linux gdb 调试工具
当前位置:
article
> 正文
关于k8s_k8s 是iass
作者:AllinToyou | 2024-02-24 23:34:35
赞
踩
k8s 是iass
1.k8s
是如何⽕起来的
是由于云计算,云计算这个概念是
google
提出的,可以为企业带来便利,降低成本。
云计算分为三⼤服务层:
IaaS
(Infrastructure as a Service,基础设施即服务)、
PaaS
(Platform as a Service,平台即服务、
SaaS
(Software as a Service,软件即服务)。
IaaS
层通过虚拟化技术提供计算、存储、⽹络等基础资源,可以在上⾯部署各种
OS
以及应⽤程序。开发者可以通过云⼚商提供的
API
控制整个基础架构,⽆须对其进⾏物理上
的维护和管理。
PaaS
层提供软件部署平台(
runtime
),抽象掉了硬件和操作系统,可以⽆缝地扩展(
scaling
)。开发者只需要关注⾃⼰的业务逻辑,不需要关注底层。
SaaS
层直接为开发者提供软件服务,将软件的开发、管理、部署等全部都交给第三⽅,⽤户不需要再关⼼技术问题,可以拿来即⽤。
以前主流的做法就是申请或创建⼀批云服务(Elastic Compute Service),⽐如亚⻢逊的
AWS EC2
、阿⾥云
ECS
或者
OpenStack
的虚拟机,然后通过
Ansible
、
Puppet
这类部署⼯具 在机器上部署应⽤。
但随着应⽤的规模变得越来越庞⼤,逻辑也越来越复杂,迭代更新也越来越频繁,这时我们就逐渐发现了⼀些问题,⽐如:
性价⽐低,资源利⽤率低
有时候⽤户只是希望运⾏⼀些简单的程序⽽已,⽐如跑⼀个⼩进程,为了不相互影响,就要建⽴虚拟机。这显然会浪费不少资源,毕竟
IaaS
层产品都是按照资源进⾏收费的。同时操作也⽐较复杂,花费时间也会⽐较⻓;
迁移成本⾼
如果想要迁移整个⾃⼰的服务程序,就要迁移整个虚拟机。显然,迁移过程也会很复杂;
环境不⼀致
在进⾏业务部署发布的过程中,服务之间的各种依赖,⽐如操作系统、开发语⾔及其版本、依赖的库
/
包等,都给业务开发和升级带来很⼤的制约。
Docker:
Docker
这个新的容器管理引擎⼤⼤降低了使⽤容器技术的⻔槛,轻量、可移植、跨平台、镜像⼀致性保障等优异的特性,⼀下⼦解放了⽣产⼒。开发者可以根据⾃⼰的喜好选择合适的 编程语⾔和框架,然后通过微服务的⽅式组合起来。交付同学可以利⽤容器保证交付版本和交付环境的⼀致性,也便于各个模块的单独升级。测试⼈员也可以只针对单个功能模块进⾏测试,加快测试验证的速度。
在某⼀段时期内,⼤家⼀提到
Docker
,就和容器等价起来,认为
Docker
就是容器,容器就是
Docker
。其实容器是⼀个相当古⽼的概念,并不是
Docker
发明的,但
Docker
却为其注⼊了新的灵魂——Docker
镜像。
Docker
镜像解决了环境打包的问题,它直接打包了应⽤运⾏所需要的整个
“
操作系统
”
,⽽且不会出现任何兼容性问题,它赋予了本地环境和云端环境⽆差别的能⼒,这样避免了⽤户通过“
试错
”
来匹配不同环境之间差异的痛苦过程, 这便是
Docker
的精髓。
容器调度平台:
⼀个容器编排引擎需要哪些能⼒?
如表所示,⾸先容器调度平台可以⾃动⽣成容器实例,然后是⽣成的容器可以相邻或者相隔,帮助提⾼可⽤性和性能,还有健康检查、容错、可扩展、⽹络等功能,它⼏乎完美地解决了需求与资源的匹配编排问题。
其实主流的容器管理调度平台有三个,分别是
Docker Swarm
、
Mesos Marathon
和
Kubernetes
,它们有各⾃的特点。但是同时满⾜上⾯所述的⼋⼤能⼒的容器调度平台,其实非Kubernetes 莫属了。
Kubernetes
的⽬标就是消除编排物理或者虚拟计算、⽹络和存储等基础设施负担,让应⽤运营商和开发⼯作者可以专注在以容器为核⼼的应⽤上⾯,同时可以优化集群的资源利⽤率。
Kubernetes
采⽤了
Pod
和
Label
这样的概念,把容器组合成⼀个个相互依赖的逻辑单元,相关容器被组合成
Pod
后被共同部署和调度,就形成了服务,这也是
Kuberentes
和其他两个调度管理系统最⼤的区别。
相对来说,
Kubernetes
采⽤这样的⽅式简化了集群范围内相关容器被共同调度管理的复杂性。换种⻆度来说,
Kubernetes
能够相对容易的⽀持更强⼤、更复杂的容器调度算法。
2.k8s的架构是什么样的
Kubernetes
借鉴了
Borg
的整体架构思想,主要由
Master
和
Node
共同组成。
我们需要注意
Master
和
Node
两个概念。
其中
Master
是控制节点,部署着
Kubernetes
的控制⾯,负责整个集群的管理和控制。
Node
为计算节点,或者叫作⼯作负载节点,每个 Node 上都会运⾏⼀些负载容器。
为了保证⾼可⽤,我们也需要部署多个
Master
实例,最好为这些
Master
节点选择⼀些性能好且规格⼤的物理机或者虚拟机,毕竟控制⾯堪称
Kubernetes
集群的⼤脑,要尽⼒避免这些
实例宕机导致集群故障。
同样在
Kubernetes
集群中也采⽤了分布式存储系统
Etcd
,⽤于保存集群中的所有对象以及状态信息。有的时候,我们会将
Etcd
集群也⼀起部署到
Master
上。
k8s
组件
Kubernetes
的控制⾯包含着
kube-apiserver
、
kube-scheduler
、
kube-controller-manager
这三⼤组件,我们也称为
Kubernetes
的三⼤件。
1
、⾸先来看
kube-apiserver
,它 是整个
Kubernetes
集群的
“
灵魂
”
,是信息的汇聚中枢,提供了所有内部和外部的
API
请求操作的唯⼀⼊⼝。同时也负责整个集群的认证、授权、访问
控制、服务发现等能⼒。⽤户可以通过命令⾏⼯具 kubectl
和
APIServer
进⾏交互,从⽽实现对集群中进⾏各种资源的增删改查等操作。
APIServer
跟
BorgMaster
⾮常类似,会将所有的改动持久到
Etcd
中,同时也保存着⼀份内存拷⻉。
2
、再来看
Kube-Controller-Manager
,它负责维护整个
Kubernetes
集群的状态,⽐如多副本创建、滚动更新等。
Kube-controller-manager
并不是⼀个单⼀组件,内部包含了⼀组资源控制器,在启动的时候,会通过 goroutine
拉起多个资源控制器。这些控制器的逻辑仅依赖于当前状态,因为在分布式系统中没办法保证全局状态的同步。同时在实现的时候避免使⽤过于复杂的状态机,因此每个控制器仅仅对⾃⼰对应的资源对象做操作。⽽且控制器做了很多容错处理,⽐如增加 retry
机制等。
3
、最后来看
Kube-scheduler
,它的⼯作简单来说就是监听未调度的
Pod
,按照预定的调度策略绑定到满⾜条件的节点上。这个⼯作虽说看起来是三⼤件中最简单的,但是做的事情可⼀点不少。
Node
节点
容器运⾏时主要负责容器的镜像管理以及容器创建及运⾏。⼤家都知道的
Docker
就是很常⽤的容器,此外还有
Kata
、
Frakti
等。只要符合
CRI
(
Container Runtime Interface
,
容器运⾏时接⼝)规范的运⾏时,都可以在
Kubernetes
中使⽤。
Kubelet
负责维护
Pod
的⽣命周期,⽐如创建和删除
Pod
对应的容器。同时也负责存储和⽹络的管理。⼀般会配合
CSI
、
CNI
插件⼀起⼯作。
Kube-Proxy
主要负责
Kubernetes
内部的服务通信,在主机上维护⽹络规则并提供转发及负载均衡能⼒。
Master
和
Node
交互⽅式
Kubernetes
中所有的状态都是采⽤上报的⽅式实现的。
APIServer
不会主动跟
Kubelet
建⽴请求链接,所有的容器状态汇报都是由
Kubelet
主动向
APIServer
发起的。
当集群资源不⾜的时候,可以按需增加
Node
节点。⼀旦启动
Kubelet
进程以后,它会主动向
APIServer
注册⾃⼰,这是
Kubernetes
推荐的
Node
管理⽅式。当然你也可以在
Kubelet
启
动参数中去掉⾃动注册的功能,不过⼀般都是默认开启这个模式的。
⼀旦新增的
Node
被
APIServer
纳管进来后,
Kubelet
进程就会定时向
APIServer
汇报
“
⼼跳
”
,即汇报⾃身的状态,包括⾃身健康状态、负载数据统计等。当⼀段时间内⼼跳包没有更新,那么此时 kube-controller-manager
就会将其标记为
NodeLost
(失联)
Kubernetes
中各个组件都是以
APIServer
为中⼼,通过松耦合的⽅式进⾏。借助声明式
API
,各部件通过
watch
的机制就可以根据各个对象的变化,很快地做出相应的处理操作。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/AllinToyou/article/detail/136808
推荐阅读
article
sanic
的
安装/
Request
/中间件/异常_
sanic
框架
无法解析
sanic
.
response
...
简介
sanic
是一款用python3.5+写
的
web framework,用法和flask类似,
sanic
的
特点是非常...
赞
踩
article
关于运行
VMware
等
虚拟机
导致
win10
蓝屏死机(终止代码:
SYSTEM
_
SERVICE
_EXCE...
关于运行
VMware
等
虚拟机
导致
win10
蓝屏死机(终止代码:
SYSTEM
_
SERVICE
_
EXCEPTION
)之前可以...
赞
踩
article
Leecode
1700-
无法
吃
午餐
的
学生
数量
(队列)...
题目代码若喜欢栈顶
的
甜点
的
学生
存在,那么不管他们在队伍
的
哪个位置,必定会遍历到他。否则,一定
无法
继续拿掉栈顶甜点。要点:...
赞
踩
article
1
.
定义
一个
人员类
Person
,包括姓名、编号、性别等数据
成员
和用于输入、输出的
成员
函数,在
此基础
上...
#include <iostream>#include<string.h>using names...
赞
踩
article
【
Python
】
Python
语言
基础
(
中
)...
接上文,这次主要介绍了
Python
的数据类型,基本数据类型和组合数据类型。
Python
的基本数据类型和别的编程
语言
大体相...
赞
踩
article
<
<
em>artifactId
<
/em>>
<
em>spring
<
/em>-
<
em>boot
<
/em>-
<
em>maven
<
/em>-
<
em>plugin
<
/em></
<
em>artifactId
<
/em>>爆...
另外,题外话,如果爆红不影响代码运行,可以不用管。2.点击
<
em>spring
<
/em>-
<
em>boot
<
/em>,右侧会显示版本号。1.点击idea软件...
赞
踩
article
GLM
: General
Language
Model
Pretraining
with
Autor...
已经有各种类型的预训练架构,包括自编码模型(例如BERT),自回归模型(例如GPT)和编码器-解码器模型(例如T5)。然...
赞
踩
article
spider
-
flow
可视化
爬虫
界面从入门到放弃_
spider
-
flow
数据库
驱动...
参照可以正常输出的任务,尝试自定义
爬虫
任务,放弃吧,一点也不简单,感觉毫无章法可言
可视化
给人的感觉就是简单易操作,小白都...
赞
踩
article
ICC2
与INNOVUS命令对照表_
synopsys
icc2
userguide
...
或者Instance的ref name。设置Path margin/slack。或者split_clock_gates。...
赞
踩
article
CommonAPI
使用说明文档_
commonapi
订阅
实现
...
一、概述1.
CommonAPI
C++是什么?
CommonAPI
C++是用于开发分布式应用程序的标准C++ API规范...
赞
踩
article
嵌入式
技术
可以做哪些
产品
_
嵌入式
产品
...
想入行
嵌入式
,首先咱得了解,
嵌入式
是做什么的,具体有啥
产品
?
嵌入式
其实就是软硬件相结合的一门
技术
,用软件来驱动硬件来工作...
赞
踩
article
java
自定义
注解
(
Annotation
)及
自定义
注解
结合
Aop
数据字典应用_
java
aop 字典...
转载请标明出处:https://blog.csdn.net/men_ma/article/details/1068471...
赞
踩
article
Visual
studio
的
安装
教程
2022
最新版(图文详细)新手小白C语言软件
的
安装
_
visual
...
Visual
Studio如何下载,
安装
步骤,怎么
安装
1、
Visual
Studio下载地址2、工作负荷选择“使用C++...
赞
踩
article
机器
学习
调参经验:
学习
速率
、正则项
系数
、
minibatch
size
_机器
学习
学习
速率
是啥...
学习
速率
(learning rate,η)运用梯度下降算法进行优化时,权重的更新规则中,在梯度项前会乘以一个
系数
,这个系...
赞
踩
article
安装
WIN7
虚拟机...
本人电脑系统为WIN11,当前已经
安装
完VMware(版本为16),本文主要讲的是关于
安装
虚拟机相关的网址链接。
安装
WI...
赞
踩
article
Python
利用
pywin32
实现自动操作电脑_
python
win32gui
...
在windows系统上,重复性的操作可以用
Python
脚本来完成,其中常用的模块是
win32gui
、win32con、w...
赞
踩
article
2021-08-
13
c++
——
类
之
操作符
重载
_
类
操作符
+
重载
...
+号
重载
1)成员函数
重载
如果要返回Person
类
,构造Person的时候就一定要赋初始值。如果不赋予初始值,就一定要有默...
赞
踩
article
如何在windows系统下将
yolov5
的
pt
模型
导出为
onnx
模型
_如何将
pt
文件
转换为
onnx
文...
最近在做本科毕业设计,要求是在树莓派上部署yolo算法来实现火灾检测,在网上查了很多资料,最后选择用
yolov5
s
模型
先...
赞
踩
article
将
学习
速率
可视化
来优化
神经网络
--
将
学习
速率
视作超
参数
并
使用
可视化
来观察其影响的技巧和诀窍...
编者注:欢迎参考2017年9月17日至20日Siddha Ganju在旧金山召开的人工智能大会上的关于嵌入式深度
学习
的讲...
赞
踩
article
VS报表
解决方案
DevExpress
.NET
Reporting
v20.1
——全新升级Web R...
DevExpress
技术交流群2:775869749欢迎一起进群讨论
DevExpress
Reporting
是.NET ...
赞
踩
相关标签
python
vmware
c语言
开发语言
maven
spring
java
语言模型
机器学习
人工智能
爬虫
spider-flow
学习
后端
idea
visual studio code
visualstudio
windows
sublime text
visual studio