【 k8s 概念(一)】k8s 概述
Kubernetes 是什么?Kubernetes 是一个可移植的,可扩展的开源平台,用于管理容器化的工作负载和服务,方便了声明式配置和自动化。它拥有一个庞大且快速增长的生态系统。Kubernetes 的服务,支持和工具广泛可用。Kubernetes 组件Kubernetes 集群由代表控制平面的组件和一组称为节点的机器组成。Kubernetes API 使你可以查询和操纵 Kubernetes
-
- Kubernetes 是什么?
-
Kubernetes 组件
-
Kubernetes API
-
使用 Kubernetes 对象
-
k8s 发展史
-
- Mesos
-
Swarm
-
k8s
-
服务部署的发展历程
-
keburnetes 提供的服务
-
keburnetes 的灵活性
Kubernetes 是一个可移植的,可扩展的开源平台,用于管理容器化的工作负载和服务,方便了声明式配置和自动化。它拥有一个庞大且快速增长的生态系统。Kubernetes 的服务,支持和工具广泛可用。
Kubernetes 集群由代表控制平面的组件和一组称为节点的机器组成。
Kubernetes API 使你可以查询和操纵 Kubernetes 中对象的状态。 Kubernetes 控制平面的核心是 API 服务器和它暴露的 HTTP API。 用户、集群的不同部分以及外部组件都通过 API 服务器相互通信。
Kubernetes 对象是 Kubernetes 系统中的持久性实体。Kubernetes 使用这些实体表示您的集群状态。了解 Kubernetes 对象模型以及如何使用这些对象。
k8s 是一个分布式资源管理器,在分布式资源管系统发展的过程中出现过 Mesos、Docker Swarm ,最终 k8s 成为了行业标杆。
Mesos
Mesos 来源于 Apache 下的开源分布式资源管理的框架。后来被twitter使用,作为基础平台,但 Twitter 公司在旧金山总部举行了一次技术发布会兼会上,宣布,Twitter 的基础设施将从 Mesos 全面转向 Kubernetes。不过mesos最新版官方公布,在mesos平台可以管理k8s,但是暂时没有大型企业采用mesos管理。
Swarm
Swarm 是 Docker 公司开发的资源管理器,发布于 2014 年,轻量的集群化管理器,占有几十MB资源,不过功能相对较少,很多功能需要手动实现。2016年 Docker 公司放弃现有的 Swarm 项目,将容器编排和集群管理功能内置到 Docker 中。Docker 从 1.12.0 版本开始,已经是Docker安装后自带的一部分。Swarm 虽然可以大规模使用,但是需要耗费大量人力财力,这时候 kubernetes 就出现了。
k8s
Kubernetes 发布于 2014年6月, 源于希腊语,意为 “舵手” 或 “领航员”,由于 kubernetes从k 到s中间有8个字母,所以简称k8s。Google 在十年前就已经将容器化作为基础架构,borg 就是 Google 内部的大型集群管理系统,borg 系统并不开源。在docker 大规模容器化后,Google 为了迅速占领 docker 容器化管理, Google 基于 borg 的设计理念使用 Go 语言开发新的组件系统 Kubernetes,并且开源给了CNCF。
如果仅看一个需求领域的竞争史,显然是不足的。
传统部署时代:
早期,各个组织机构在物理服务器上运行应用程序。无法为物理服务器中的应用程序定义资源边界,这会导致资源分配问题。 例如,如果在物理服务器上运行多个应用程序,则可能会出现一个应用程序占用大部分资源的情况, 结果可能导致其他应用程序的性能下降。 一种解决方案是在不同的物理服务器上运行每个应用程序,但是由于资源利用不足而无法扩展, 并且维护许多物理服务器的成本很高。
虚拟化部署时代:
作为解决方案,引入了虚拟化。虚拟化技术允许你在单个物理服务器的 CPU 上运行多个虚拟机(VM)。 虚拟化允许应用程序在 VM 之间隔离,并提供一定程度的安全,因为一个应用程序的信息不能被另一应用程序随意访问。
虚拟化技术能够更好地利用物理服务器上的资源,并且因为可轻松地添加或更新应用程序而可以实现更好的可伸缩性,降低硬件成本等等。
每个 VM 是一台完整的计算机,在虚拟化硬件之上运行所有组件,包括其自己的操作系统。
容器部署时代:
容器类似于 VM,但是它们具有被放宽的隔离属性,可以在应用程序之间共享操作系统(OS)。 因此,容器被认为是轻量级的。容器与 VM 类似,具有自己的文件系统、CPU、内存、进程空间等。 由于它们与基础架构分离,因此可以跨云和 OS 发行版本进行移植。
容器因具有许多优势而变得流行起来。下面列出的是容器的一些好处:
-
敏捷应用程序的创建和部署:与使用 VM 镜像相比,提高了容器镜像创建的简便性和效率。
-
持续开发、集成和部署:通过快速简单的回滚(由于镜像不可变性),支持可靠且频繁的 容器镜像构建和部署。
-
关注开发与运维的分离:在构建/发布时而不是在部署时创建应用程序容器镜像, 从而将应用程序与基础架构分离。
-
可观察性:不仅可以显示操作系统级别的信息和指标,还可以显示应用程序的运行状况和其他指标信号。
-
跨开发、测试和生产的环境一致性:在便携式计算机上与在云中相同地运行。
-
跨云和操作系统发行版本的可移植性:可在 Ubuntu、RHEL、CoreOS、本地、 Google Kubernetes Engine 和其他任何地方运行。
-
以应用程序为中心的管理:提高抽象级别,从在虚拟硬件上运行 OS 到使用逻辑资源在 OS 上运行应用程序。
-
松散耦合、分布式、弹性、解放的微服务:应用程序被分解成较小的独立部分, 并且可以动态部署和管理 - 而不是在一台大型单机上整体运行。
-
资源隔离:可预测的应用程序性能。
-
资源利用:高效率和高密度。
服务发现和负载均衡
Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器,如果进入容器的流量很大, Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。
存储编排
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
读者福利
由于篇幅过长,就不展示所有面试题了,感兴趣的小伙伴
更多笔记分享
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
-ZFoGqXAi-1713519326638)]
[外链图片转存中…(img-ov9qjDa0-1713519326639)]
更多笔记分享
[外链图片转存中…(img-zm4nOjF7-1713519326641)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
更多推荐
所有评论(0)