Kubernetes入门-大简介

news2024/11/8 22:44:46

目录

何为微服务

何为云原生

何为编排器


  • “Kubernetes”这个名字来自希腊语,意思是“舵手”
  • 舵手是一个航海/航行术语,指掌舵的人
  • 从本质上说,Kubernetes是云原生微服务(cloud-native microservice)应用的编排器(orchestrator)

何为微服务

  • 在过去,开发人员构建和部署的是单体应用
  • 单体应用中每个功能都被捆绑在一起作为单个大的包
  • 如图所示:
  • Web前端、认证、日志生成、数据存储、报告系统等被紧密地耦合在一起,捆绑成一个应用
  • 这意味着,如果想改变某个部分,必须改变每一部分
  • 举个简单的例子,如果需要修补或更新上图中的应用的报告功能,必须关闭整个应用并修补/更新整个应用
  • 像这样的工作需要详尽的计划,面临巨大的风险且十分复杂
  • 但是,单体应用带来的痛苦还不止于此
  • 如果想对它们的某个功能进行扩缩容,不得不对整个单体应用扩缩容
  • 基本上,应用的每个功能都被作为一个单体的单元捆绑、部署、升级和扩缩容,这是很笨拙的,显然不是很理想
  • 另外,微服务应用采用完全相同的一组功能——Web前端、认证、日志生成、数据存储、报告系统等
  • 将每个功能拆分为自己的小应用
  • “小”的另一个词是“微”,“应用”的另一个词是“服务”
  • 这就是“微服务”这个术语的由来
  • 如果仔细观察下图你会发现,它就是和上图完全相同的一组应用功能
  • 不同的是,每个功能都是独立开发、独立部署的,并且可以独立更新和扩缩容
  • 但它们依然协同工作,创造与单体应用完全相同的应用体验
  • 最常见的模式是每个微服务都作为独立的容器来开发和部署
  • 例如,Web前端微服务会是一个容器,认证微服务会是另一个不同的容器,报告系统微服务又会再是不同的容器
  • 以此类推
  • 每个微服务都是独立的,但又是通过网络松散耦合的,以创建相同的应用体验
  • 通过设计让微服务之间是松散耦合的,这是修改一个微服务而不影响其他微服务的基础
  • 从技术上讲,每个微服务都通过IP网络暴露一个API,让其他微服务能够通过这个API来使用它
  • 如果不熟悉API这个概念,下面这个类比对你可能会有所帮助
  • 汽车的外形和大小各异,它们配置的可能是直列四缸、水平对卧六缸、八缸的发动机,甚至可能是电动发动机
  • 但是,所有这些复杂的细节都通过使用标准化控制器---方向盘、加速器、刹车踏板和车速表对驾驶员隐藏了
  • 在这个模型中,控制器相当于汽车的API---驾驶员通过它们来使用汽车的功能
  • 这种模型的一个主要优点是,学会驾驶后就能驾驶任何一款汽车
  • 例如,我学开车时用的是一辆前轮驱动的汽车,它配置的是四缸汽油发动机
  • 但我无须学习任何新的驾驶技能就能开全轮驱动的电动汽车
  • 这就是因为标准化的方向盘和脚踏板(API)将发动机和传动系统的复杂细节隐藏起来了
  • 同样,更换汽车的发动机、替换其方向盘和轮胎、升级其排气系统后,驾驶员依然能够驾驶它,而无须学习任何新的驾驶技能
  • 回到正题---微服务应用
  • 只要没有修改微服务的API,就可以在其他微服务和应用用户不会注意到的情况下对微服务进行修补或更新
  • 除了让微服务能够独立地更新和扩缩容,微服务设计模式还让开发团队更小、更敏捷,能够更快地迭代功能
  • 一般来说,与大团队相比,2~8人团队的沟通和合作的职场政治因素会更少,也会更敏捷
  • 微服务设计模式还有其他优点---将功能开发成独立的微服务,可以在不影响应用任何部件的情况下对它们进行开发、部署、更新、扩缩容等
  • 但是,微服务并不完美
  • 如果有很多由不同团队管理的移动部件,微服务可能会变得很复杂
  • 最后,这两种设计应用的方式——单体与微服务---被称为设计模式
  • 微服务设计模式是当前云时代最常见的模式

何为云原生

  • 一个云原生应用必须能够:
  • 按需扩缩容
  • 自我修复
  • 支持滚动更新
  • 可以在任何有Kubernetes的地方运行
  • 让我们花点时间来定义其中一些流行术语的含义
  • 按需扩缩容是指应用和相关基础设施为了满足当前需求的自动增长和收缩的能力
  • 例如,在线零售应用可能需要在特殊的假期增加基础设施和应用资源,然后在假期结束时缩小规模
  • 如果配置正确,Kubernetes可以在需求增加时自动对应用和基础设施进行扩容,也可以在需求下降时对它们进行缩容
  • 这不仅有助于企业对突发变化做出更快速的反应,还能在缩容时帮助其降低基础设施的成本
  • Kubernetes还可以自我修复应用和单个微服务,这需要更多关于Kubernetes的知识,将会在后面介绍
  • 但现在要知道的是,当用户把一个应用部署到Kubernetes时,用户告诉Kubernetes这个应用应该是什么样子
  • 例如,每个微服务有多少个实例,应该连接到哪些网络
  • Kubernetes将其保存为期望状态(desired state),并监视应用,以确保它始终与期望状态匹配
  • 如果有什么变化,例如,某个微服务崩溃,Kubernetes会注意到这一点,并启动一个副本作为替代,这就是所谓的自我修复或弹性
  • 滚动更新是一种在不让应用离线甚至客户不会注意到的情况下更新应用的某些部分的能力
  • 它改变了现代商业世界的游戏规则,稍后我们就可以看到它的实际效果
  • 关于云原生还有最后一点要讲
  • 云原生几乎是与公有云无关的,它是一组我们讨论过的功能和能力
  • 因此,云原生应用可以在任何有Kubernetes的地方运行,如AWS、Azure、Linode、本地数据中心或者家中的树莓派集群
  • 总之,云原生应用是具有弹性的、可以自动扩缩容的,并且可以在不停机的情况下进行更新
  • 它们还可以在任何拥有Kubernetes的地方甚至是内部环境运行

何为编排器

  • 借助一个类比可以更好地解释编排器这个概念
  • 一个管弦乐队由一群演奏不同乐器的音乐家组成
  • 每位音乐家都可以用不同的乐器,在演奏开始后发挥着不同的作用
  • 乐器包括小提琴、大提琴、竖琴、双簧管、长笛、单簧管、小号、长号、鼓,甚至三角琴
  • 每一个音乐家在管弦乐队中扮演着不同的角色
  • 如下图所示,每位乐器都是独立的个体,还没有被指定扮演什么样的角色——这简直是一团糟,鼓甚至是上下颠倒的
  • 一位指挥家拿着乐谱和指挥棒走过来,维持秩序
  • 她把弦乐器都安排到舞台前面,木管乐器安排在中间,铜管乐器安排在后面一点儿,打击乐器安排在后面高一些的地方
  • 她还指挥一切,告诉每组乐器什么时候演奏、演奏多大声以及以什么速度演奏
  • 简而言之,指挥家将上图中的混乱情况变成如下图所示那样井井有条,以确保音乐按照作曲家的意图演奏
  • 云原生微服务应用就像管弦乐队
  • 每个云原生应用都是由很多小的微服务组成的
  • 它们各司其职:有的服务于Web请求,有的用于认证会话,有的进行日志记录,有的用于持久化数据,还有一些生成报告
  • 但就像一个管弦乐队一样,它们需要有人或某种东西将它们组织成一个有用的应用
  • 由此,我们真正走进Kubernetes世界
  • Kubernetes将独立的微服务组织成一个有意义的应用,如下图所示
  • 如前所述,它可以对应用进行扩缩容、自我修复和更新等操作
  • 总之,像Kubernetes这样的编排器将不同的微服务组合在一起,并将它们组织成一个有用的应用
  • 它还提供并管理云原生功能,如扩缩容、自我修复和更新

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

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

相关文章

【C++类和对象中篇】(构造函数和析构函数)

🎁个人主页:我们的五年 🔍系列专栏:C课程学习 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 🍩1.默认成员函数的概念: 🍩2.构造函数: 2.1特性&…

刚刚❗️德勤2025校招暑期实习测评笔试SHL测评题库已发(答案)

📣德勤 2024暑期实习测评已发,正在申请的小伙伴看过来哦👀 ㊙️本次暑期实习优先考虑2025年本科及以上学历的毕业生,此次只有“审计及鉴定”“税务与商务咨询”两个部门开放了岗位~ ⚠️测评注意事项: &#x1f44…

字节面试:CPU100% 如何处理?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中,最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格,遇到很多很重要的线上问题的场景题: 1.CPU100%,你是怎么处理的&…

写给大数据开发的,要给领导汇报什么?

上篇:写给大数据开发,如何去掌握数据分析 就像说经济学家不炒股一样,有些数据开发不喜欢讲数据📊,就很离谱…自己不讲数据,不相信数据,别人也不敢用了~ 所以找上级汇报&#xff0…

【上海大学计算机组成原理实验报告】七、程序转移机制

一、实验目的 学习实现程序转移的硬件机制。 掌握堆栈寄存器的使用。 二、实验原理 根据实验指导书的相关内容,实验箱系统的程序转移硬件机制在于,当LDPC有效时,如果此时DUBS上的值就是转移的目标地址,则此目标地址被打入PC&am…

LabVIEW电池测试系统

1. 背景 随着电动汽车、可再生能源等领域的迅速发展,电池作为能源储存和释放的核心组件,其性能评估变得尤为重要。电池的充放电性能、容量、循环寿命等参数直接影响着设备的工作性能和使用寿命。因此,设计一套全面、准确的电池测试系统对于提…

王学岗鸿蒙开发(北向)——————(十)子组件修改父组件的内容与 动画

子组件修改父组件的内容 使用类似Android的回调,父组件传递给子组件一个函数 import { MyComment } from ./component/MyComment import { MyContent } from ./component/MyComtent import { MyTitleComponent } from ./component/MyTitleComponentEntry Componen…

安卓逆向经典案例——XX牛

安卓逆向经典案例——XX牛 按钮绑定方式 1.抓包 2.查看界面元素,找到控件id 通过抓包,发现点击登录后,才会出现Encrpt加密信息,所以我们通过控件找到对应id:btn_login 按钮绑定方法——第四种 public class LoginA…

把文件从一台linux机器上传到另一台linux机器上

文章目录 1,第一种情况1.1 先测试2台机器是否可以互相通信1.2 对整个文件夹里面的所有内容进行传输的命令1.3 检查结果 2,第二种情况2.1,单个文件传输的命令 1,第一种情况 我这里有2台linux机器, 机器A:19…

uni-app uni-swipe-action 滑动操作状态恢复

按照uni-app官方文档的写法 当前同一条滑动确认之后 页面列表刷新 但是滑动的状态还在 入下图所示: 我们需要在滑动确认之后 页面刷新 滑动状态恢复 那么我们就来写一下这部分的逻辑: 首先,配置一下:show"isOpened[item.id]" chan…

基于JSP的医院远程诊断系统

开头语: 你好呀,我是计算机学长猫哥!如果有相关需求,文末可以找到我的联系方式。 开发语言: Java 数据库: MySQL 技术: JSP Servlet JSPBean 工具: IDEA/Eclipse、Navica…

ChatTTS - 用于对话场景的文本转语音

大家好,我是小麦,今天给大家分享一款免费,可用于对话场景的文本转语音工具。 阅读感悟 不知道大家在日常的学习、工作中是否有这样的一个情况,当我们阅读完一篇文章,很快就能读完,但印象不会很深&#xf…

Python学习打卡:day01

day1 笔记来源于:黑马程序员python教程,8天python从入门到精通,学python看这套就够了 1、Python 软件(PyCharm) 安装:在 Linux 环境下安装 Pycharm 插件:汉化、翻译 设置字体大小 常用快捷…

Django ListView 列表视图类

ListView是Django的通用视图之一,它用于显示一个对象列表。这个视图将所有的对象作为一个上下文变量传递给模板。 1,创建应用 python manage.py startapp app3 2,注册应用 Test/Test/settings.py Test/Test/urls.py 3,添加模型 …

车联网安全入门——CAN总线模糊测试

文章目录 车联网安全入门——CAN总线模糊测试介绍主要特点使用场景 模糊测试(Fuzz Testing)CAN 总线模糊测试(CAN Packet Fuzzing)主要步骤工具和软件主要目标 Can-Hax安装使用获得指纹模糊测试 SavvyCAN 总结参考 车联网安全入门…

深入理解 C++ 智能指针

文章目录 一、引言二、 原始指针的问题1、原始指针的问题2、智能指针如何解决这些问题 三、智能指针的类型四、std::shared_ptr1、shared_ptr使用2、shared_ptr的使用注意事项3、定制删除器4、shared_ptr的优缺点5、shared_ptr的模拟实现 五、std::unique_ptr1、unique_ptr的使…

端午节到了,祝大家粽子甜甜,生活美满!愿粉丝们心想事成,健康平安,阖家幸福!

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

java+Vue +Spring boot技术开发的UWB高精度定位技术系统源码 uwb定位系统+基站定位

javaVue Spring boot技术开发的UWB高精度定位技术系统源码 uwb定位系统基站定位 系统采用UWB高精度定位技术,可实现厘米级别定位。UWB作为一种高速率、低功耗、高容量的新兴无线局域定位技术,目前应用主要聚焦在室内高精确定位,例如在工业自动…

ABAP - SAP与企业微信集成

最近接到一个SAP直接给企业微信推送消息的需求,说实话之前一直没接触过,脑袋空空的,最终通过在百度搜索案例成功解决了,百度虽然一直被诟病,但却无法否认它的神奇。实现效果 实现思路:从需求出发&#xff0…

游戏服务器工程实践一:百万级同时在线的全区全服游戏

我应该有资格写这篇文章,因为亲手设计过可以支撑百万级同时在线的全区全服类型的游戏服务器架构。 若干年前我在某公司任职时,参与研发过一款休闲类型的游戏,由 penguin 厂独代。研发的时候,p 厂要求我们的游戏服务器要能支撑百万…