Kubernetes入门篇

文章目录

  • 🔊博主介绍
  • 🥤本文内容
    • Kubernetes是什么?
    • 为什么需要 Kubernetes,它能做什么?
    • Kubernetes 版本进化
    • Kubernetes 概念
    • Kubernetes 中 3 个重要概念
  • 📢文章总结
  • 📥博主目标

🔊博主介绍

🌟我是廖志伟,一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作者、产品软文专业写手、技术文章评审老师、问卷调查设计师、个人社区创始人、开源项目贡献者。🌎跑过十五公里、🚀徒步爬过衡山、🔥有过三个月减肥20斤的经历、是个喜欢躺平的狠人。

📕拥有多年一线研发和团队管理经验,研究过主流框架的底层源码(Spring、SpringBoot、Spring MVC、SpringCould、Mybatis、Dubbo、Zookeeper),消息中间件底层架构原理(RabbitMQ、RockerMQ、Kafka)、Redis缓存、MySQL关系型数据库、 ElasticSearch全文搜索、MongoDB非关系型数据库、Apache ShardingSphere分库分表读写分离、设计模式、领域驱动DDD、Kubernetes容器编排等。

📙有过从0到1的项目高并发项目开发与管理经验,对JVM调优、MySQL调优、Redis调优 、ElasticSearch调优、消息中间件调优、系统架构调优都有着比较全面的实战经验。

📘有过云端搭建服务器环境,自动化部署CI/CD,弹性伸缩扩容服务器(最高200台),了解过秒级部署(阿里云的ACK和华为云的云容器引擎CCE)流程,能独立开发和部署整个后端服务,有过分库分表的实战经验。

🎥经过多年在CSDN创作上千篇文章的经验积累,我已经拥有了不错的写作技巧,与清华大学出版社签下了四本书籍的合约,并将陆续在明年出版。这些书籍包括了基础篇、进阶篇、架构篇的📌《Java项目实战—深入理解大型互联网企业通用技术》📌,以及📚《解密程序员的思维密码–沟通、演讲、思考的实践》📚。具体出版计划会根据实际情况进行调整,希望各位读者朋能够多多支持!


文章目录

  • 🔊博主介绍
  • 🥤本文内容
    • Kubernetes是什么?
    • 为什么需要 Kubernetes,它能做什么?
    • Kubernetes 版本进化
    • Kubernetes 概念
    • Kubernetes 中 3 个重要概念
  • 📢文章总结
  • 📥博主目标

🌾阅读前,快速浏览目录和章节概览可帮助了解文章结构、内容和作者的重点。了解自己希望从中获得什么样的知识或经验是非常重要的。建议在阅读时做笔记、思考问题、自我提问,以加深理解和吸收知识。

💡在这个美好的时刻,本人不再啰嗦废话,现在毫不拖延地进入文章所要讨论的主题。接下来,我将为大家呈现正文内容。

🥤本文内容

CSDN

Kubernetes是什么?

古早的部署时代呢,大家都在物理服务器上跑应用,谁也分不清究竟哪个程序占了多少资源,那可真是闹心啊!比如你在同一个物理服务器上给好几个程序开了工,那么其中一个程序可能就漫无目的地占满了整个服务器的资源,就像嚣张跋扈的土豪,让其他的程序都喘不过气来。这时候要是有办法把这些程序分开在不同的物理服务器上跑那该多好,可惜的是这样做也不能解决资源利用不够充分和维护这么多物理服务器的成本高昂这两个大难题。

虚拟化这个东西,就是咱们为了解决这些麻烦事儿弄出来的。他能让你在同一个物理服务器的CPU上开启好几台“小屋子”(VM,虚拟机),有点像开了一家宾馆包揽了住客的房间,却只用一套被子铺床。这样就能让应用程序彼此分开,而且还颇有人情味儿,因为他们之间看不见摸不着,谁也别想偷窥到谁的小秘密。虚拟化技术利用起物理服务器的资源来得心应手,还能让我们随着业务的扩展说加就加,说升级就升级,硬件成本蹭蹭往下掉,真是个好事儿。每个VM就像是一台微型的PC,在虚拟化的外衣下运转着所有部件,甚至还带了自己的操作系统来撑腰呢。

到了现在的容器部署时代,这个玩法跟虚拟机其实差不多,只是流程简化了点儿,有点儿像咱们做菜的时候用碗装菜,然后再找个篮子装碗,省事儿又能省碗。容器也有自己的文件系统、CPU、内存、进程空间啥的,跟VM也没有什么两样。但它跟硬件关系不太紧密,所以无论是放到云里还是放在操作系统上,都能稳妥地搞定。 容器还因为有很多优点变得越来越火爆。比如说呢,创建和部署应用程序就像是炒盘家常菜一样简单迅速;还有持续开发、集成和部署,这可是开发和运维之间的一份大哥大,支持可靠且频繁的容器镜像构建和部署。最有意思的是,关注开发与运维的分离,在构建/发布时创建应用程序容器镜像,这样就能让应用程序和基础架构相互远离,各自安好。再加上可观察性,不仅能展示操作系统级别的信息和指标,还能看到应用程序的运行状况和其他指标信号呢。还有跨开发、测试和生产的环境一致性,不管是在便携式计算机上还是在云中,都是同样地运行。跨云和操作系统发行版本的可移植性,可以在Ubuntu、RHEL、CoreOS、本地、Google Kubernetes Engine以及其他各种场合里自由行动。最后,以应用程序为中心的管理,提升了抽象层次,从在虚拟硬件上运行OS变成了使用逻辑资源在OS上运行应用程序,这个关注点的切换真是让人眼前一亮哦。松散耦合、分布式、弹性、解放的微服务,把应用程序分解成若干个独立的部分,自由布署和管理——不再是在一台大机器上硬挺硬抗。资源隔离,预知应用程序的性能波动。资源利用,效率高,密度大,真是绝佳的捆绑和运行应用程序的方式。 在生产力整顿上,咱们得烙下这个印象:管理好运转应用程序的容器,保证没日没夜的工作,不要有机器停摆的现象。

为什么需要 Kubernetes,它能做什么?

服务发现和负载均衡搞得那叫一个溜啊!Kubernetes这货能用DNS名儿或者自家IP公开那些破烂儿容器,要是一不小心进来了大量流量,它立马就能委曲求全地把这些破烂儿分摊处理,稳定住整个部署。自动部署?那对Kubernetes来说就像是家常便饭:理解你的部署状态,然后按照你设定的速度慢慢把实际状况改造成你想要的那个理想形态。比如你要让它给你的部署整点新玩意儿容器,就得删掉现在用的这些老工具人,把他们的家产都贡献出来供养新人。各种操作孔武有力!不过别忘了定时给它们喂点吃的哦~

风驰电掣般的装箱计算要是没了Kubernetes可真是没法活下去。咱们可以尽情地去规划每一个容器需要多少CPU、还有多少内存(RAM)。只要容器报上了它们到货所需的这些屁事儿,Kubernetes就能自作主张,把资源管理得井井有条。即使出现了瑕疵,比如说某个家伙遇到点小问题,Kubernetes也能大刀阔斧地把它们干翻,换个新的,凡是没通过用户设定的健康检查又不肯改邪归正的,直接拉出去毙了,决不能留情。

Kubernetes在保护我们安全方面可是出了名的。比如说密钥、配置什么的,Kubernetes都给你管着,你不用再担心在重新部署应用程序的时候还得大费周章地重新创建容器镜像,或是在配置文件里泄露密码什么的。你只需动动手指头部署、更新你的密钥,应用程序就跟着你的指令起舞;至于那些不听话的,就让它们孤死路口好了。容量可以随意调节?那就让Kubernetes给咱们弄明白吧,你只需要告诉它你心目中的容器应该长什么样、需要用哪些资源,剩下的事情都由它搞定。无论是增加还是减少实例数量,它都会在最短时间内达到你的需求。

说到存储编排,瞧瞧Kubernetes,这货就能帮咱们轻松挂上各种款式的存储系统,不管是本地仓库,还是被世人所尊崇的公共云供应商们。如此强大的功能,你值得拥有!相信有了Kubernetes这货的辅助,你的业务一定会如虎添翼,登峰造极!

Kubernetes 版本进化

• 2014 年 6 月份:大家所熟知的那个谷歌,大声向全世界宣告,有个叫kubernetes的东西要开源啦!大家还记得吗? • 同年 7 月份:眼见着这事儿火了起来,Microsoft、Red Hat、IBM、Docker、CoreOS、Mesosphere和Saltstack等巨头都纷纷投入到了kubernets之中来,热闹非凡。 • 再到 8 月份,咱们回到 2014 年 8 月份,这个时候有个老大哥——Mesosphere出来发声,他们说也要把 kubernetes纳入自己的阵营,然后用它来调度、部署和管理那些Docker的容器集群。真可谓是一石二鸟啊! • 又过了一个半月,也就是当年的 8 月底,VMware也站出来表明态度,宣布要加入kubernets的大家庭。真是好事连连,热闹非凡! • 当然,还有 11 月份,那件大事可不能忘记,HP同样加入了kubernets的团队。这样一来,筹码越来越重,众人纷纷效仿。 • 11 月份也是值得纪念的月份,Google的容器引擎Alpha版本上线,并且宣布在GCE(Google Compute Engine)中支持容器与服务,用的还是熟悉的那套,那个叫做kubernetes的架构哦。这可是不得了的消息呢! • 再接下来,时光机器来到 2015 年 1 月份,当时Google与Mirantis及其他伙伴联手,将kubernetes引入OpenStack之中,让开发人员可以直接在openstack上安装和运行kubernetes应用。真是不得了啊! • 同一年的 4 月份,Google和CoreOs一拍即合,共同发布了Tectonic,将熟知的kubernetes和CoreOS软件栈整合在了一起。这可是商业版啊! • 到了 5 月份,Intel也加入了我们的家庭,表示会大力推动Tectonic软件栈的开发进程,助力我们成长壮大。真是太好了! • 紧接着,又是一个重大事件发生在2015年6月份,Google的容器引擎正式步入beta版本。beta版本预示着什么呢?温室里的花朵即将走向成熟。 • 到了7月份,Google终于正式加入了OpenStack基金会,Kubernetes的产品经理毫不讳言地坦白,他将要把他所掌握的关于容器计算的专业知识注入到OpenStack这个大家庭当中去。你们猜对了,那就是kuberntes! • 而就在同一天,我们亲爱的Kuberentes v1.0正式面世啦!之后每三个月更新一次,现在我们已经来到1.22版本咯!

Kubernetes 概念

控制平面组件(Control Plane Components)
• apiserver:得大头角色者,作为咱们kubernetes系统的大柜台,啥功能都不少,包括但不限于核心对象的增删改查这些家常便饭,都是以RESTFul 接口这种通俗易懂的方式提供给外部顾客和内部老铁们调用。老哥稳妥画风,他手底下维护的那些玩意儿都会稳稳当当地存进立即性(Durable)、容错性(Fault-Tolerant)的etcd大神家里吃住。
• scheduler:这个家伙就是负责集群那点破事儿的资源大管家,一有新宝宝 ——即新建的 pod,就负责给他分派一片天地(好比为新生儿找个爸似的)——即分配机器。这小子割据一方,分化成一个独立的部件,毫无疑问,以后换台车跑路都行,多敞亮!
• controller-manager:老大的跟班,手里需要处理各种琐碎的事务,现在嘛,有两种主流玩法:
• endpoint-controller:兢兢业业打工仔,至少半年一次死磕,把service 和 pod勾搭在一块儿(关联信息会由 endpoint 当事人来照料),确保 service 到 pod 的中间人永远是帅气的最新款。
• replication-controller : 如同上班打卡一样定点儿去节点,盯紧 replicationController 和 pod 的关系,务必让 replicationController 规定的复制数量赶得上实际运行平淡无奇的 pod 的产量!Node 组件
• kubelet:接锅客服,搞定 docker 容器的一切事宜,比如说开机/关机这类小事儿,以及监控运行活蹦乱跳的状态什么的。这个货儿会定期从 etcd 大神那里获取分配到家门口的 pod,然后再根据 这位来访的 pod 的情报启动或者关闭相应的容器。而且啊,它还能飘洋过海接收到 apiserver 的 HTTP 请求,汇报 那个征战四方的 pod 正在战火纷飞中演绎着自己的故事。
• proxy:这个技术含量高些,起到为pod 提供代言人的作用。它老大是 etcd,时不时扒拉扒拉所有的 service,然后根据服务信息建立代理。真可谓独孤求败,当某位客户的 pod 需要拜访他人时,拜访请求自然会通过在本机安营扎寨的 proxy 做转发送的。
• Container Runtime – Docker enginee 插件(Addons)
• CoreDNS: Kube-DNS, CoreDNS
• Network Plugin : Flannel/calico
• Web 界面(仪表盘): Dashboard 这哥们儿就是个全能选手,既能帮忙搞定 Kubernetes 集群的大活儿,又能用言语表达清楚,简单明了,让用户轻松管理集群中操劳奔波的应用程序以至整个丛林本身,实在是让人爱不释手的监测工具。
• 容器资源监控:Heapster, Metrics-server

Kubernetes 中 3 个重要概念

• the Pod:哦,这个东西可谓是 Kubernetes 的底子啊!无论您要搞什么东东,它都能摆平!Pod简直就是一个大牛级别的容器,说实话,它代表着某种应用的一个实例。例如,咱们假设有个火爆的 web 站点,那就得靠前端、后端以及数据库这几个江湖好汉一起使劲儿,它们各显神通,在自己的小天地里大展拳脚。所以呢,Pod 嘛,咱们就可以利用起来,让这三位英雄都住进 Pod 的大家庭中去啦。

• the Service:瞧吧,Kubernetes 的神器来了!这个东西可比 Pod 厉害多了,它是真实应用服务的精致模版,背后隐藏着无数栩栩如生的容器。这些容器犹如众士兵守护着强大的司令官—Service,它们通过 Proxy 的 port 和服务 selector 明察秋毫,一旦有敌军出现,就立即向后传达远处传来的战斗信号,决定到底应该让哪位大侠过来支援。这样一来,无论敌人多么凶猛,Service总是能够以其单一的访问接口来应对,外界也无需知晓内部的运作机制,真正实现了后端的隐形守护神,对后期的扩张和维护可真是益处多多啊!

• the ReplicationController:哼,这个就是 Pod 的老铁,专门用来处理 Pod 的大小调整问题,稳重得很。做一般大型游戏时,为了多获得点加分或是想提高游戏的生存率,大部分玩家都会考虑多生孩子,但这个孩子多了也得精打细算,不能浪费。ReplicationController就能帮您解决这类问题,您只需告诉它某场游戏需要多少份资源,然后 Kubernetes 就会像部队一样,按照您说的数量来为每份资源创建一个 Pod,确保腹中的孩子们数量不会超过您的期望(比如突然哪个孩子夭折了,立马就会被替代)。

CSDN

📢文章总结

对本篇文章进行总结:

🔔以上就是今天要讲的内容,阅读结束后,反思和总结所学内容,并尝试应用到现实中,有助于深化理解和应用知识。与朋友或同事分享所读内容,讨论细节并获得反馈,也有助于加深对知识的理解和吸收。

以梦为马,不负韶华

🔔如果您需要转载或者搬运这篇文章的话,非常欢迎您私信我哦~

🚀🎉希望各位读者大大多多支持用心写文章的博主,现在时代变了,🚀🎉 信息爆炸,酒香也怕巷子深🔥,博主真的需要大家的帮助才能在这片海洋中继续发光发热🎨,所以,🏃💨赶紧动动你的小手,点波关注❤️,点波赞👍,点波收藏⭐,甚至点波评论✍️,都是对博主最好的支持和鼓励!

  • 💂 博客主页: 我是廖志伟
  • 👉开源项目:java_wxid
  • 🌥 哔哩哔哩:我是廖志伟
  • 🎏个人社区:幕后大佬
  • 🔖个人微信号SeniorRD
  • 🎉微信号二维码SeniorRD

📥博主目标

探寻内心世界,博主分享人生感悟与未来目标

  • 🍋程序开发这条路不能停,停下来容易被淘汰掉,吃不了自律的苦,就要受平庸的罪,持续的能力才能带来持续的自信。我本是一个很普通的程序员,放在人堆里,除了与生俱来的盛世美颜,就剩180的大高个了,就是我这样的一个人,默默写博文也有好多年了。
  • 📺有句老话说的好,牛逼之前都是傻逼式的坚持,希望自己可以通过大量的作品、时间的积累、个人魅力、运气、时机,可以打造属于自己的技术影响力。
  • 💥内心起伏不定,我时而激动,时而沉思。我希望自己能成为一个综合性人才,具备技术、业务和管理方面的精湛技能。我想成为产品架构路线的总设计师,团队的指挥者,技术团队的中流砥柱,企业战略和资本规划的实战专家。
  • 🎉这个目标的实现需要不懈的努力和持续的成长,但我必须努力追求。因为我知道,只有成为这样的人才,我才能在职业生涯中不断前进并为企业的发展带来真正的价值。在这个不断变化的时代,我们必须随时准备好迎接挑战,不断学习和探索新的领域,才能不断地向前推进。我坚信,只要我不断努力,我一定会达到自己的目标。

🔔有需要对自己进行综合性评估,进行职业方向规划,我可以让技术大牛帮你模拟面试、针对性的指导、传授面试技巧、简历优化、进行技术问题答疑等服务。

可访问:https://java_wxid.gitee.io/tojson/

开发人员简历优化、面试突击指导、技术问题解答

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

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

相关文章

JAVA文件IO, File类, 字符流,字节流

文章目录 文件IO1. File2. IO流2.1 字符流2.1.1 Reader2.1.2 Writer 2.2 字节流2.2.1 InputStream2.2.2 FileInputStream2.2.3 利用Scanner进行字符读取2.2.4 OutputStream 文件IO I: Input, 从硬盘往内存读数据 O: Output, 从内存往硬盘输出数据 1. File Java 中通过 java…

SAP_ABAP_编程基础_二进制文件_SMW0中上传与下载

SAP ABAP 顾问(开发工程师)能力模型_Terry谈企业数字化的博客-CSDN博客文章浏览阅读448次。目标:基于对SAP abap 顾问能力模型的梳理,给一年左右经验的abaper 快速成长为三年经验提供超级燃料!https://blog.csdn.net/j…

VT-VSPA1-1X比例压力阀控制板

替代力士乐同型号,可以完全互换使用;适用于力士乐系列所有无电位置反馈的直动式和先导式比例压力阀的控制;外置欧板式连接,VT-VSPA1-1X型放大器配套支架型号:VT-3002-1X/32D或VT-3002-2X/32D; VT-VSPA2-1-1X/T1、VT-V…

Joint Bilateral Upsampling

Abstract 图像分析和增强任务(例如色调映射、着色、立体深度和蒙太奇)通常需要在像素网格上计算解决方案(例如,曝光、色度、视差、标签)。计算和内存成本通常要求在下采样图像上运行较小的解决方案。尽管通用上采样方…

物理层之三种数据交换方式(电路交换、报文交换、分组交换(数据报方式、虚电路方式))

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

Oracle(2-7)Instance and Media Recovery Structures

文章目录 一、基础知识1、体系结构详解2、Database Files 数据库文件3、Database Other Files 其他数据文件4、Dynamic Views 动态视图5、Large Pool6、DB Buffer Cache,DBWn7、Configuring Tablespaces 配置表空间8、Redo Log Buffer, LGWR 二、基础操作1、查看数据库动态视图…

elk:filebeat也是一个日志收集工具

filebeat是一个轻量级的日志收集工具,所使用的系统资源比logstash部署和启动使用的资源要小的多 filebeat可以允许在非java环境,他可以代替logstash在非java环境上收集日志 filebeat无法实现数据的过滤,一般是结合logstash的数据过滤功能一…

Breadcrumb面包屑(antd-design组件库)简单用法和自定义分隔符

1.Breadcrumb面包屑 显示当前页面在系统层级结构中的位置,并能向上返回。 2.何时使用 当系统拥有超过两级以上的层级结构时; 当需要告知用户『你在哪里』时; 当需要向上导航的功能时。 组件代码来自: 面包屑 Breadcrumb - Ant Des…

日期对象与节点操作

1.日期对象 1.1实例化 // 实例化const date new Date()console.log(date);// 返回指定时间const date1 new Date(2022-5-1 08:30:00)console.log(date1);1.2日期对象方法 1.3时间戳 三种获取时间戳的方法 const date new Date()console.log(date.getTime());console.log(ne…

vue el-table表格中每行上传文件(上传简历)操作

1、HTML中 <el-table :data"formInfo.userListDto" border stripe max-height"400"><el-table-column type"index" label"序号" width"50"> </el-table-column><el-table-column prop"realName&q…

接手了一个外包开发的项目,我感觉我的头快要裂开了~

嗨&#xff0c;大家好&#xff0c;我是飘渺。 最近&#xff0c;我和小伙伴一起接手了一个由外包团队开发的微服务项目&#xff0c;这个项目采用了当前流行的Spring Cloud Alibaba微服务架构&#xff0c;并且是基于一个“大名鼎鼎”的微服务开源脚手架&#xff08;附带着模块代…

elment Loading 加载组件动态变更 text 值bug记录

先上效果图: 倒计时4分钟组件方法 // 倒计时 4分钟getSencond() {this.countDown 4分00秒this.interval setInterval(() > {this.maxTime--;let minutes Math.floor(this.maxTime / 60);let seconds Math.floor(this.maxTime % 60);minutes minutes < 10 ? 0 minu…