一、Kubernetes介绍与集群架构
Kubernetes介绍与集群架构
一、认识容器编排工具
- docker machine
- 主要用于准备docker host
- 现已弃用
- 建议使用docker desktop
- docker compose
- Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。
- 使用 Compose,您可以使用 YAML 文件来配置应用程序的服务。
- 使用一个命令,您可以从您的配置中创建并启动所有服务。
- docker swarm
- 内置于docker引擎中
- 对docker引擎进行集群级别的管理
- 分布式设计,可以让集群资源更多,管理更多的主机
- 声明式服务模型,通过YAML文件定义应用程序服务所需状态
- 服务规模可扩大可缩小,保持用户期望状态
- 服务发现
- 负载均衡
- 滚动更新等
- docker service
- docker stack
- kubernetes
- Kubernetes作为一个容器集群管理系统,用于管理容器云平台中多个主机上的容器应用,Kubernetes的目标是让部署容器化的应用变得简单且高效,所以 Kubernetes 提供了应用部署,规划,更新,维护的一整套完整的机制。
- Kubernetes没有固定要求容器的格式,但是Kubernetes使用它自己的API和命令行接口来进行容器编排。
- 除了Docker容器之外,Kubernetes还支持其他多种容器,如 Containerd、rkt、CoreOS 等。
- Kubernetes 是自成体系的管理工具,可以实现容器调度,资源管理,服务发现,健康检查,自动伸缩,更新升级等,也可以在应用模版配置中指定副本数量,服务要求(IO 优先;性能优先等),资源使用区间,标签(Labels等)来匹配特定要求达到预期状态等,这些特征便足以征服开发者,再加上 Kubernetes 有一个非常活跃的社区。它为用户提供了更多的选择以方便用户扩展编排容器来满足他们的需求。但是由于 Kubernetes 使用了自己的 API 接口,所以命令系统是另外一套系统,这也是 kubernetes 应用门槛比较高的原因所在。
- mesos+marathon
- Apache Mesos 是一个分布式系统内核的开源集群管理器,Apache Mesos 的出现要远早于 Docker Swarm 和 Kubernetes。
- 其结合Marathon 这个基于容器的应用程序的编排框架,它为 Docker Swarm 和 Kubernetes 提供了一个有效的替代方案。
- Mesos 能够在同样的集群机器上运行多种分布式系统类型,可以更加动态高效的共享资源。
- Messos 也提供服务失败检查,服务发布,服务跟踪,服务监控,资源管理和资源共享。
- Messos 可以扩展伸缩到数千个节点。
- 如果你拥有很多的服务器而且想构建一个大的集群的时候,Mesos 就派上用场了。
- 很多的现代化可扩展性的数据处理应用都可以在 Mesos 上运行,包括大数据框架 Hadoop、Kafka、Spark。
- 但是大而全,往往就是对应的复杂和困难,这一点体现在 Messos 上是完全正确,与Docker 和 Docker Swarm 使用同一种 API 不同的,Mesos 和 Marathon 都有自己的 API,这使得它们比其他编排系统更加的复杂。Apache Mesos 是混合环境的完美编配工具,由于它包含容器和非容器的应用,虽然 Messos 很稳定,但是它的使用户快速学习应用变得更加困难,这也是在应用和部署场景下难于推广的原因之一。
| 分布式资源管理框架 | 主要特点 | 备注 |
|---|---|---|
| Apache Mesos | 功能强大,但系统复杂不易用 | 2019年Twitter宣布弃用 |
| Docker Swarm | 集成在docker引擎中,不需要单独安装,但功能较少 | 2019年阿里云宣布弃用 |
| Google Kubernetes | 功能强大,但学习成本与管理成本高 | 目前没有替代者,多领域应用 |
二、认识kubernetes
2.1 kubernetes含义、起源、归属
2.1.1 含义
希腊语:舵手、飞行员
2.1.2 起源
-
源自于谷歌Borg
-
使用golang语言开发
-
简称为k8s
2.1.3 归属
现归属于CNCF
-
云原生(CloudNative)计算基金会
-
是一个开源软件基金会,致力于使云计算普遍性和持续性
-
官方:http://www.cncf.io
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L0XqwQge-1691633580010)(kubernetes介绍与集群架构.assets/image-20220324160124674.png)]
2.2 kubernetes版本
- 2014年9月第一个正式版本
- 2015年7月1.0版本正式发布
- 现在稳定版本为1.23
- 主要贡献者:Google,Redhat,Microsoft,IBM,Intel
- 代码托管github:https://github.com/kubernetes/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HQDav7ue-1691633580012)(kubernetes介绍与集群架构.assets/1557046658333.png)]
2.3 Kubernetes用户
- 2017年docker官方宣布原生支持kubernetes
- RedHat公司 PaaS平台 OpenShift核心是kubernetes
- Rancher平台核心是kubernetes
- 现国内大多数公司都可使用kubernetes进行传统IT服务转换,以实现高效管理等。
2.4 Kubernetes网址
- 官方网址
https://kubernetes.io/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rpDcPapc-1691633580013)(kubernetes介绍与集群架构.assets/1557046832480.png)]
https://kubernetes.io/zh/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CojzCz5r-1691633580014)(kubernetes介绍与集群架构.assets/image-20220324145026425.png)]
- 中文社区
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H5IMR0uj-1691633580015)(kubernetes介绍与集群架构.assets/image-20220324145137982.png)]
三、kubernetes架构
3.1 软件架构说明
-
有中心节点分布式架构
- hadoop集群
- ceph集群
-
无中心节点分布式架构
- glusterFS
-
kubernetes是具有中心节点的分布式架构,也就是说有master管理节点
- Master Node
- 中心节点
- manager
- 简单叫法
- master节点
- Minion Node
- 工作节点
- worker
- 简单叫点
- node节点
- worker节点
- Master Node
3.2 Kubernetes架构图示图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WUAau0oa-1691633580016)(kubernetes介绍与集群架构.assets/1557048978763.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mJFiJkkI-1691633580017)(kubernetes介绍与集群架构.assets/2)]
四、Kubernetes集群节点组件
4.1 Master节点组件
master节点是集群管理中心,它的组件可以在集群内任意节点运行,但是为了方便管理所以会在一台主机上运行Master所有组件,并且不在此主机上运行用户容器
Master组件包括:
- kube-apiserver
用于暴露kubernetes API,任何的资源请求/调用操作都是通过kube-apiserver提供的接口进行。
- kube-controller-manager
控制器管理器,用于对控制器进行管理,它们是集群中处理常规任务的后台线程。
-
kube-scheduler
监视新创建没有分配到Node的Pod,为Pod选择一个Node运行。
-
ETCD
是kubernetes提供默认的存储系统,保存所有集群数据。
4.2 Node节点组件介绍
node节点用于运行以及维护Pod, 管理volume(CVI)和网络(CNI),维护pod及service等信息
Node组件包括:
- kubelet
- 负责维护容器的生命周期(创建pod,销毁pod),同时也负责Volume(CVI)和网络(CNI)的管理
- kube-proxy
- 通过在主机上维护网络规则并执行连接转发来实现service(iptables/ipvs)
- 随时与apiserver通信,把Service或Pod改变提交给apiserver,保存至etcd(可做高可用集群)中,负责service实现,从内部pod至service和从外部node到service访问。
- Container Runtime
- 容器运行时(Container Runtime)
- 负责镜像管理以及Pod和容器的真正运行
- 支持docker/containerd/Rkt/Pouch/Kata等多种运行时
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CTB2OTGz-1691633580018)(kubernetes介绍与集群架构.assets/k8s架构图2.png)]
4.3 Add-ons介绍
Add-ons(附件)使功能更丰富,没它并不影响实际使用,可以与主体程序很好结合起来使用
- coredns/kube-dns: 负责为整个集群提供DNS服务
- Ingress Controller 为服务提供集群外部访问
- Heapster/Metries-server 提供集群资源监控(监控容器可以使用prometheus)
- Dashboard 提供集群GUI
- Federation 提供跨可用区的集群
- Fluentd-elasticsearch 提供集群日志采集、存储与查询
相关文章:
一、Kubernetes介绍与集群架构
Kubernetes介绍与集群架构 一、认识容器编排工具 docker machine 主要用于准备docker host现已弃用建议使用docker desktop docker compose Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。使用 Compose,您可以使用 YAML 文件来配置应用程序的服务。…...
基于C#UI Automation自动化测试
步骤 UI Automation 只适用于,标准的win32和 WPF程序 需要添加对UIAutomationClient、 UIAutomationProvider、 UIAutomationTypes的引用 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.D…...
深入了解Linux运维的重要性与最佳实践
Linux作为开源操作系统的代表,在企业级环境中的应用越来越广泛。而在保障Linux系统的正常运行和管理方面,Linux运维显得尤为关键。本文将介绍Linux运维的重要性以及一些最佳实践,帮助读者更好地了解和掌握Linux系统的运维技巧。 首先…...
90 | Python人工智能篇 —— 深度学习算法 Keras基于卷积神经网络的情感分类
情感分类是自然语言处理(NLP)领域的一个重要任务,它旨在将文本划分为积极、消极或中性等不同情感类别。深度学习技术,尤其是卷积神经网络(CNN),在情感分类任务中取得了显著的成果。Keras作为一个高级的深度学习框架,提供了便捷易用的工具来构建和训练情感分类模型。 文…...
自然语言处理从入门到应用——LangChain:记忆(Memory)-[记忆的类型Ⅲ]
分类目录:《自然语言处理从入门到应用》总目录 对话令牌缓冲存储器ConversationTokenBufferMemory ConversationTokenBufferMemory在内存中保留了最近的一些对话交互,并使用标记长度来确定何时刷新交互,而不是交互数量。 from langchain.me…...
【ARM 嵌入式 编译系列 10.3 -- GNU elfutils 工具小结】
文章目录 什么是 GNU elfutils?GNU elfutils 常用工具有哪些?objcopy 常用参数有哪些?GNU binutils和GNU elfutils区别是什么? 上篇文章:ARM 嵌入式 编译系列 10.2 – 符号表与可执行程序分离详细讲解 什么是 GNU elfu…...
黑马项目一阶段面试 项目介绍篇
我完成了一个外卖项目,名叫苍穹外卖,是跟着黑马程序员的课程来自己动手写的。 项目基本实现了外卖客户端、商家端的后端完整业务。 商家端分为员工管理、文件上传、菜品管理、分类管理、套餐管理、店铺营业状态、订单下单派送等的管理、数据统计等&…...
重构内置类Function原型上的call方法
重构内置类Function原型上的call方法 // > 重构内置类Function原型上的call方法 ~(function () {/*** call: 改变函数中的this指向* params* context 可以不传递,传递必须是引用类型的值,因为后面要给它加 fn 属性**/function myCall(context) {/…...
Nginx之lnmp架构
目录 一.什么是LNMP二.LNMP环境搭建1.Nginx的搭建2.安装php3.安装数据库4.测试Nginx与PHP的连接5.测试PHP连接数据库 一.什么是LNMP LNMP是一套技术的组合,Llinux,Nnginx,Mmysql,Pphp 首先Nginx服务是不能处理动态资源请求&…...
C# 使用FFmpeg.Autogen对byte[]进行编解码
C# 使用FFmpeg.Autogen对byte[]进行编解码,参考:https://github.com/vanjoge/CSharpVideoDemo 入口调用类: using System; using System.IO; using System.Drawing; using System.Runtime.InteropServices; using FFmpeg.AutoGen;namespace F…...
websocket是多线程的嘛
经过测试, onOpen事件的threadId和onMessage的threadId是不一样的,但是onMessage的threadId一直是同一个,就是说收消息的部分是单线程的,收到第一个Message后如果给它sleep较长时间,期间收到第二个,效果是它在排队&am…...
CentOS7.9 禁用22端口,使用其他端口替代
文章目录 业务场景操作步骤修改sshd配置文件修改SELinux开放给ssh使用的端口修改防火墙,开放新端口重启sshd生效 相关知识点介绍sshd服务SELinux服务firewall.service服务 业务场景 我们在某市实施交通信控平台项目,我们申请了一台服务器,用…...
2023国赛 高教社杯数学建模ABCDE题思路汇总分析
文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 全国大学生数学建模…...
【网络层+数据链路层】深入理解IP协议和MAC帧协议的基本原理
文章目录 前言一、IP协议二、MAC帧协议 1.以太网2.以太网帧(MAC帧)格式报头3.基于协议讲解局域网转发的原理总结 前言 为什么经常将TCP/IP放在一起呢?这是因为IP层的核心工作就是通过IP地址来定位主机的,具有将一个数据报从A主机…...
银行家算法【学习算法】
银行家算法【学习算法】 前言版权推荐银行家算法7.避免死锁7.1 系统安全状态7.2 利用银行家算法避免死锁 Java算法实现代码结果 最后 前言 2023-8-14 18:18:01 以下内容源自《【学习算法】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台…...
萤石直播以及回放的接入和销毁
以下基于vue项目 1.安装 npm i ezuikit-js 2、导入 main.js中 import EZUIKit from "ezuikit-js"; //导入萤石Vue.use(EZUIKit); 3、创建容器 <div class"video"><div id"video-container"></div><!-- <iframe :src…...
C语言易错知识点总结2
函数 第 1 题(单选题) 题目名称: 能把函数处理结果的二个数据返回给主调函数,在下面的方法中不正确的是:( ) 题目内容: A .return 这二个数 B .形参用数组 C .形参用二个指针 D .用…...
Go学习-Day1
Go学习-Day1 个人博客:CSDN博客 打卡。 Go语言的核心开发团队: Ken Thompson (C语言,B语言,Unix的发明者,牛人)Rob Pike(UTF-8发明人)Robert Griesemer(协助HotSpot编译器,Js引擎V8) Go语言有静态语言的…...
冠达管理:机构密集调研医药生物股 反腐政策影响受关注
进入8月,跟着反腐事件发酵,医药生物板块呈现震荡。与此一起,组织出资者对该板块上市公司也展开了密集调研。 到昨日,8月以来就有包含南微医学、百济神州、维力医疗、方盛制药等12家医药生物板块的上市公司接受组织调研,…...
安装Tomac服务器——安装步骤以及易出现问题的解决方法
文章目录 前言 一、下载Tomcat及解压 1、选择下载版本(本文选择tomcat 8版本为例) 2、解压安装包 二、配置环境 1、在电脑搜索栏里面搜索环境变量即可 2、点击高级系统设置->环境变量->新建系统变量 1) 新建系统变量,变量名为…...
OFA图像描述新手入门:无需代码基础,快速搭建图像描述AI
OFA图像描述新手入门:无需代码基础,快速搭建图像描述AI 1. 什么是OFA图像描述系统? 想象一下,你拍了一张照片,系统能自动为你写出照片里有什么、发生了什么——这就是OFA图像描述系统能做的事情。这个AI工具特别适合…...
我们如何同步 .NET 的虚拟单体仓库(二)账
在之前的文章中,我们花了大量的篇幅,从记录后端pod真实ip开始说起,然后引入envoy,再解决了各种各样的需求:配置自动重载、流量劫持、sidecar自动注入,到envoy的各种能力:熔断、流控、分流、透明…...
[AI应用框架/Java] Spring AI 应用开发指南<>概述、快速入门鼻
本文能帮你解决什么? 1. 搞懂FastAPI异步(async/await)到底在什么场景下能真正提升性能。 2. 掌握在FastAPI中正确使用多线程处理CPU密集型任务的方法。 3. 避开常见的坑(比如阻塞操作、数据库连接池耗尽、GIL限制)。 …...
docker在centos7上的搭建
docker与传统虚拟机对比 传统虚拟机基于安装在主操作系统上(带环境安装) 缺点:资源占有多,冗余多,运行速度慢, dockers:打包软件运行所需所有资源,无需捆绑一整个操作系统&#x…...
Agent Harness:AI Agent 时代那个「缺失的操作系统层」
文章目录前言当"最强大脑"得了"失忆症"Agent Harness:给AI装上"操作系统"Harness都管哪些事儿?1. 工具编排(Tool Orchestration)2. 记忆与状态持久化(Memory & State)3.…...
软考机考绘图技巧与实战指南
1. 软考机考绘图工具基础操作 第一次参加软考机考的朋友们,最头疼的莫过于绘图题了。我当年第一次考试时,看到屏幕上密密麻麻的绘图工具,手指在键盘上悬了半天都不知道该点哪个按钮。后来经过多次实战,总结出一套快速上手的方法。…...
五年跨境人掏心窝:多SKU铺货,我终于不用“爆肝”了!
大家好,我是跨境小彭。时间过得真快,一转眼,入坑跨境电商已经五年了。从最早一个人一台电脑在出租屋里倒腾,到现在有了自己的小团队,这中间的辛酸泪,估计只有咱们圈内人懂。最近,后台收到不少刚…...
别再死记硬背AXI时序了!用Vivado Block Design搭个玩具,看波形秒懂握手协议
从零玩转AXI协议:用Vivado图形化工具破解握手时序之谜 第一次接触AXI协议时,那些密密麻麻的时序图让我头皮发麻——AWVALID、AWREADY、WLAST...这些信号就像天书一样难以理解。直到有一天,我决定抛开枯燥的文档,直接在Vivado里动手…...
ICLR 2026两篇满分思路:不规则时间序列+条件扩散模型,研一就能复现!
时序生成式预测在金融与医疗等高风险领域至关重要。面对数据非平稳性、极端事件冲击及采样不规则等严峻挑战,传统点预测常因过度自信而失效,产生巨大风险。本文解析的两项最新研究开辟了新路径:前者首创不确定性门控(Uncertainty-…...
计算机毕业设计:Python气象数据可视化与采集管理系统 Flask框架 数据分析 可视化 爬虫 气象数据分析(建议收藏)✅
博主介绍:✌全网粉丝50W,前互联网大厂软件研发、集结硕博英豪成立软件开发工作室,专注于计算机相关专业项目实战6年之久,累计开发项目作品上万套。凭借丰富的经验与专业实力,已帮助成千上万的学生顺利毕业,…...
