论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
软件与程序人生
›
云原生
›
K8S概念及其常见组件和整体架构
K8S概念及其常见组件和整体架构
徐锦洪
论坛元老
|
2024-11-25 10:29:09
|
显示全部楼层
|
阅读模式
楼主
主题
1819
|
帖子
1819
|
积分
5457
1.概念
什么是Kubernetes
官网:Kubernetes 文档 | Kubernetes
K8S的本质是一组服务器集群,可以在对应服务器集群的每个节点上运行步调,来对节点中的容器举行管理
类似Master-Work方式,每个服务器上安装特定的K8S组件,就可以形成集群,然后摆设对应的应用即可
K8S常见的功能
服务发现和负载均衡
Kubernetes可以使用DNS名称或自己的IP地点来袒露容器
假如进入容器的流量很大,Kubernetes可以或许自动实现请求的负载均衡分配网络流量,从而使摆设稳定
存储编排
Kubernetes允许自动挂载选择的存储体系,例如本地存储、云提供商存储等
自动摆设和回滚
可以用K8S自动化摆设创建新容器,删除现有容器并将它们的全部资源用于新容器
当版本发布错误,可以立刻回退到之前的版本
自我修复
假如某个容器宕机了,K8S可以快速重新启动新的容器,替换旧的容器
密钥与配置管理
K8S允许存储和管理敏感信息,例如暗码、OAuth令牌和ssh密钥
2.K8S常见概念组件
K8S整体架构,也是Client-Server模型
控制节点Master-Node,负责集群的管理
工作节点Worker-Node,负责为集群提供运行环境
K8S常见概念
Master
集群控制节点(相当于整个集群的指挥中心),在每个Kubernetes集群里都必要一个Master来负责整个集群的管理和控制
Node
除了Master,K8S集群中的其他呆板被称为Node节点,Node节点才是Kubernetes集群中的工作负载节点
每个Node节点都会被Master分配一些工作负载(docker容器),Node节点上的docker负责容器的运行
Pod
Pod是一组容器,在K8S中最小的单位是Pod,一个Pod可以包罗多个容器,但通常情况下我们在每个Pod中仅使用一个容器
可以理解成豌豆荚,Pod内的每个容器是一颗颗豌豆
分类
自主创建:直接创建出来的Pod,这种Pod删除后就没有了,也不会自动重修
控制器创建:通过控制器创建的Pod,这类Pod删除了之后还会自动重修
Pod Controller
控制器是管理Pod的中心层,只必要告诉Pod控制器,想要创建多少个什么样的Pod,它会创建出满足条件的Pod并确保每一个Pod资源处于用户期望的目的状态。假如Pod在运行中出现故障,它会基于指定策略重新编排Pod
通过它来实现对Pod的管理,比如启动Pod、制止Pod、扩展Pod的数量等等
类型
ReplicaSet、Deployment、Horizontal Pod Autoscaler、DaemonSet等
Service
在K8S里面,每个Pod都会被分配一个单独的IP地点,但这个IP地点会随着Pod的烧毁而消散
Service(服务)就是用来解决这个标题的,对外服务的同一入口,用于为一组提供服务的Pod抽象一个稳定的网络访问地点
一个Service可以看作一组提供雷同服务的Pod的对外访问接口,作用于哪些Pod是通过标签选择器来定义的
Label
K8S提供了一种机制来为Pod举行分类,那就是Label(标签),同一类Pod会拥有雷同的标签
Label的具体情势是key-value的标记对,可以在创建资源的时候设置,也可以在后期添加和修改
给某个资源对象定义一个Label,就相当于给它打了一个标签,可以通过Label Selector(标签选择器)查询和筛选拥有哪些Label的资源对象,K8S通过这种方式实现了类似SQL的对象查询机制
Label选择器
对应的资源打上标签后,可以使用标签选择器过滤指定的标签
标签选择器现在有两个
基于等值关系:便是、不便是
基于聚集关系:属于、不属于、存在
NameSpace
可以在一个物理集群上运行多个假造集群,这种假造集群被称为命名空间,用来隔离Pod的运行环境
同一个命名空间中的资源名称必须唯一
NameSpace是不能嵌套的,每一个Kubernetes的资源都只能在一个NameSpace内
命名空间是在多个用户之间划分集群资源的一种方法(通过资源配额)
不必使用多个命名空间来分隔稍微不同的资源,例如同一软件的不同版本,应该使用标签来区分
Kubernetes会创建四个初始NameSpace命名空间
default:没有指明使用别的命名空间的对象所使用的默认命名空间
kube-system Kubernetes:体系创建对象所使用的命名空间
kube-public:是自动创建的,命名空间下的资源可以被全部人访问(包罗未认证用户)
kube-node-lease:集群节点之间的心跳维护
应用分类
有状态应用
不能简朴的实现负载均衡的服务,有数据产生的服务,redis、mysql、rabbitMQ等
相关服务需通过一些较复杂的配置才气做到负载均衡
有状态的应用,发起直接在物理机摆设,方便维护管理
无状态应用
没有对应业务数据的应用,可以简朴的实现负载均衡,复制一个节点即可快速扩容,如SpringCloud中的业务服务
无状态的应用恰当摆设在K8S中大概容器中
3.K8S整体架构
K8S整体架构,也是Client-Server模型
控制节点Master-Node,负责集群的管理
apiserver:提供操纵
K8S集群资源
的唯一入口,restful方式请求,并提供认证、授权、访问控制、API注册和发现等
scheduler:负责资源调度,按照预定的调度策略,
盘算
将Pod调度到相应的Node节点举行应用摆设
controller-manager:控制器管理中心,负责维护集群的状态,比如故障检测、滚动更新等,根据调度器的安排通知对应的节点创建Pod
etcd:存储中心,是兼具同等性和高可用性的键值数据库,可以作为保存Kubernetes全部集群数据的背景数据库
工作节点Worker-Node,负责为集群提供运行环境
Node是Pod真正运行的主机,可以是物理机也可以是假造机,Node本质上不是K8S创建的,K8S只是管理Node上的资源,为了管理Pod,每个Node节点上至少必要运行container runtime(Docker)、kubelet和kube-proxy服务
kubelet:相当于主节点派到工作节点的一个代表,用于管理本机容器(相当于master节点的化身),负责维护容器的生命周期,也负责Volume(CVI)和网络(CNI)的管理
kube-proxy:负责为Service提供cluster内部的服务发现/网络署理/负载均衡等操纵,为摆设的应用步调提供访问入口,和apiserver是不一样的,后者是操纵K8S集群内部
架构图
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
徐锦洪
论坛元老
这个人很懒什么都没写!
楼主热帖
彻底卸载SQL Server
马丽明:选择超融合架构的三个要素 ...
漏洞扫描工具nessus、rapid7 insightvm ...
【计算机网络】TCP为什么需要3次握手 ...
java数据库开发与实战应用,2022最值得 ...
iOS16新特性 | 灵动岛适配开发与到家业 ...
Oracle夺命连环25问,你能坚持第几问? ...
c# 实现定义一套中间SQL可以跨库执行的 ...
WPF工控组态软件之冷却塔和空气压缩机 ...
几种数据库jar包获取方式
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
物联网
人工智能
IOS
公有云
数据仓库与分析
快速回复
返回顶部
返回列表