云原生技术kubernates是什么(第一集)

技术能量站 技术能量站     2022-11-28     687

关键词:

1. kubernates 是什么

Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化工作负载和服务,有助于声明式配置和自动化。它拥有庞大且快速发展的生态系统。Kubernetes 服务、支持和工具广泛可用。

Kubernetes 这个名字来源于希腊语,意思是舵手或飞行员。K8s 作为一个缩写,是通过计算“K”和“s”之间的八个字母得出的。Google 于 2014 年开源了 Kubernetes 项目。Kubernetes 结合了 Google 超过 15 年大规模运行生产工作负载的经验以及来自社区的最佳创意和实践。

2. kubernates 的演进

让我们回顾一下为什么 Kubernetes 如此有用。

传统部署时代: 早期,组织在物理服务器上运行应用程序。无法为物理服务器中的应用程序定义资源边界,这会导致资源分配问题。例如,如果多个应用程序在物理服务器上运行,则可能会出现一个应用程序占用大部分资源的情况,结果其他应用程序的性能就会不佳。一个解决方案是在不同的物理服务器上运行每个应用程序。但这并没有扩展,因为资源没有得到充分利用,而且组织维护许多物理服务器的成本很高。

虚拟化部署时代:作为解决方案,引入了虚拟化。它允许您在单个物理服务器的 CPU 上运行多个虚拟机 (VM)。虚拟化允许应用程序在 VM 之间隔离,并提供一定程度的安全性,因为一个应用程序的信息不能被另一个应用程序自由访问。

虚拟化允许更好地利用物理服务器中的资源并允许更好的可扩展性,因为可以轻松添加或更新应用程序,降低硬件成本等等。通过虚拟化,您可以将一组物理资源呈现为一次性虚拟机集群。

每个 VM 都是在虚拟化硬件之上运行所有组件的完整机器,包括它自己的操作系统。

容器部署时代:容器类似于虚拟机,但它们具有放松的隔离属性,可以在应用程序之间共享操作系统(OS)。因此,容器被认为是轻量级的。与 VM 类似,容器有自己的文件系统、CPU 份额、内存、进程空间等。由于它们与底层基础架构分离,因此它们可以跨云和操作系统分布移植。

容器之所以流行,是因为它们提供了额外的好处,例如:

  • 敏捷的应用程序创建和部署:与使用 VM 映像相比,容器映像创建的简便性和效率更高。
  • 持续开发、集成和部署:提供可靠且频繁的容器映像构建和部署以及快速高效的回滚(由于映像不变性)。
  • Dev 和 Ops 的关注点分离:在构建/发布时而不是部署时创建应用程序容器映像,从而将应用程序与基础架构解耦。
  • 可观察性:不仅可以显示操作系统级别的信息和指标,还可以显示应用程序运行状况和其他信号。
  • 开发、测试和生产之间的环境一致性:在笔记本电脑上运行与在云中运行相同。
  • 云和操作系统分发可移植性:在 Ubuntu、RHEL、CoreOS、本地、主要公共云和其他任何地方运行。
  • 以应用程序为中心的管理:将抽象级别从在虚拟硬件上运行操作系统提高到使用逻辑资源在操作系统上运行应用程序。
  • 松散耦合、分布式、弹性、自由的微服务:应用程序被分解成更小的、独立的部分,并且可以动态部署和管理——而不是在一台大型单一用途机器上运行的单一堆栈。
  • 资源隔离:可预测的应用程序性能。
  • 资源利用:高效率、高密度。

3. 为什么需要kubernates

容器是捆绑和运行应用程序的好方法。在生产环境中,您需要管理运行应用程序的容器并确保没有停机。例如,如果一个容器出现故障,则需要启动另一个容器。如果这种行为由系统处理,会不会更容易?

这就是 Kubernetes 来救援的方式!Kubernetes 为您提供了一个框架来弹性地运行分布式系统。它负责您的应用程序的扩展和故障转移,提供部署模式等等。例如,Kubernetes 可以轻松地为您的系统管理金丝雀部署。

4. kubernantes 的功能特性

  • 服务发现和负载平衡 Kubernetes 可以使用 DNS 名称或使用自己的 IP 地址公开容器。如果容器的流量很高,Kubernetes 能够负载均衡并分配网络流量,从而使部署稳定。
  • 存储编排 Kubernetes 允许您自动挂载您选择的存储系统,例如本地存储、公共云提供商等。
  • 自动推出和回滚 您可以使用 Kubernetes 描述已部署容器的所需状态,它可以以受控的速率将实际状态更改为所需状态。例如,您可以自动化 Kubernetes 为您的部署创建新容器、删除现有容器并将其所有资源用于新容器。
  • 自动装箱 你为 Kubernetes 提供了一个节点集群,它可以用来运行容器化的任务。你告诉 Kubernetes 每个容器需要多少 CPU 和内存 (RAM)。Kubernetes 可以将容器安装到您的节点上,以充分利用您的资源。
  • 自我修复 Kubernetes 会重新启动失败的容器、替换容器、杀死不响应用户定义的健康检查的容器,并且在它们准备好服务之前不会将它们通告给客户端。
  • 敏感数据和配置管理 Kubernetes 允许您存储和管理敏感信息,例如密码、OAuth 令牌和 SSH 密钥。您可以部署和更新机密和应用程序配置,而无需重新构建容器映像,也无需在堆栈配置中公开机密。

5. kubernates 的定位

Kubernetes 不是一个传统的、包罗万象的 PaaS(平台即服务)系统。由于 Kubernetes 在容器级别而不是硬件级别运行,因此它提供了一些常见于 PaaS 产品的普遍适用的功能,例如部署、扩展、负载平衡,并允许用户集成他们的日志记录、监控和警报解决方案。然而,Kubernetes 并不是单一的,这些默认的解决方案是可选的和可插拔的。Kubernetes 为构建开发者平台提供了构建块,但在重要的地方保留了用户的选择和灵活性。

  • 不限制支持的应用程序类型。Kubernetes 旨在支持极其多样化的工作负载,包括无状态、有状态和数据处理工作负载。如果应用程序可以在容器中运行,它应该在 Kubernetes 上运行良好。
  • 不部署源代码,也不构建您的应用程序。持续集成、交付和部署 (CI/CD) 工作流程由组织文化和偏好以及技术要求决定。
  • 不提供应用级服务,例如中间件(例如,消息总线)、数据处理框架(例如,Spark)、数据库(例如,MySQL)、缓存,也不提供集群存储系统(例如,Ceph)作为内置服务。此类组件可以在 Kubernetes 上运行,和/或可以由运行在 Kubernetes 上的应用程序通过可移植机制(例如Open Service Broker )访问。
  • 不规定日志记录、监控或警报解决方案。它提供了一些集成作为概念证明,以及收集和导出指标的机制。
  • 不提供也不强制要求配置语言/系统(例如 Jsonnet)。它提供了一个声明性 API,可以针对任意形式的声明性规范。
  • 不提供也不采用任何全面的机器配置、维护、管理或自我修复系统。

此外,Kubernetes 不仅仅是一个编排系统。事实上,它消除了编排的需要。编排的技术定义是执行已定义的工作流:首先执行 A,然后执行 B,然后执行 C。相比之下,Kubernetes 包含一组独立的、可组合的控制过程,它们不断地将当前状态驱动到提供的所需状态。从 A 到 C 的方式无关紧要。也不需要集中控制。这导致了一个更易于使用、更强大、更健壮、弹性和可扩展的系统。

云原生技术kubernates服务网格(servicemesh)(第八集)

1.ServiceMesh背景1.1ServiceMesh初识今年,ServiceMesh(服务网格)概念在社区里头非常火,有人提出2018年是ServiceMesh年,还有人提出ServiceMesh是下一代的微服务架构基础。作为架构师,如果你现在还不了解ServiceMesh的话,... 查看详情

云原生技术kubernates服务网格(servicemesh)(第八集)

1.ServiceMesh背景1.1ServiceMesh初识今年,ServiceMesh(服务网格)概念在社区里头非常火,有人提出2018年是ServiceMesh年,还有人提出ServiceMesh是下一代的微服务架构基础。作为架构师,如果你现在还不了解ServiceMesh的话,... 查看详情

云原生技术kubernates基础组件(第六集)(代码片段)

1.整体概述一个kubernetes集群主要是由控制节点(master)、工作节点(node)构成,每个节点上都会安装不同的组件。1.1Master集群的控制平面,负责集群的决策(管理)ApiServer:资源操作的唯一入口,接收用户输入的命令,提... 查看详情

阿里云李飞飞:什么是云原生数据库

简介: 云原生是一种新型技术体系,是云计算未来的发展方向。今天,阿里云李飞飞将和我们分享何为云原生、云原生如何与分布式有机结合,以及云原生技术如何帮助客户迈入数字原生时代。作者|飞刀来源|阿里技术公众... 查看详情

云原生架构重要组成部分之微服务(代码片段)

...了该技术架构,随着技术与理念的升级迭代,云原生概念应世而起,现在火的一塌糊涂。做为新时代的程序员,我们要抓住云原生的浪潮。这篇文章呢大致分为四部分,第一部分简单谈一下什么是云原生,... 查看详情

云原生是什么

文章目录01什么是云原生02云原生计算基金会(CloudNativeComputingFoundation,CNCF)03云原生的作用04如何拥抱云原生技术05云原生适合大企业还是小企业06云原生与开源参考文献导读:CloudNative:云原生。我们今天一起来聊... 查看详情

云原生和云计算是什么?两者有何区别?

...续学习,就很容易被新人所替代,今天给大家讲解一下云原生与云计算的区别,以下是详细的内容:  云原生是什么?  云原生其实在业界没有绝对统一的定义,但是基本上的理解我们可以理解为如下:云+原生,云的意思是... 查看详情

什么是云原生

最近参加了极客时间的云原生培训,准备写点东西记录下学习心得,并且对一些需要深挖的点做个记号想想自己也做了将近4年的DevOps,猛然被这么一问不禁有点懵,忙了半天,什么是云原生呢什么是云原生课堂笔记在公有云、... 查看详情

quarkus技术系列「云原生架构原理」在云原生时代下的java“拯救者”是quarkus,那云原生是什么呢?

云原生时代下的Java“拯救者”在云原生时代,其实Java程序是有很大的劣势的,以最流行的springboot/springcloud微服务框架为例,启动一个已经优化好,很多bean需要lazyload的application至少需要3-4秒时间,内存需要几... 查看详情

云原生服务网格istio第一章

...放平台。  ◎Istio是一个与Kubernetes紧密结合的适用于云原生场景的ServiceMesh形态的用于服务治理的开放平台。服务治理涉及连接(Connect)、安全(Secure)、策略执行(C 查看详情

云的革命

...到来。这三个变化浪潮共同创造了一个新的软件世界:云原生世界。这个世界的操作系统叫做Kuberne 查看详情

.net生态系统的蜕变之.net6云原生

云原生的英文名是cloudnative,native就是土著的意思,也就是土著对当地的环境是非常适应的,在云的环境和传统的数据中心是非常不同的,云原生就是要用的云的技术来构建应用,利用云的技术来降低种端服务... 查看详情

传统架构vs云原生架构,谈谈为什么我们需要云原生架构?(代码片段)

云原生架构是什么回顾过去十年,数字化转型驱动着技术创新和商业元素的不断融合和重构,可以说,现在已经不是由商业模式决定采用何种技术架构,而是由技术架构决定企业的商业模式。所以无论是行业巨头... 查看详情

云原生系列第一讲:什么是云计算

序言 文章颜色说明:一、为什么要有云计算1.1背景1.1.1硬件设备复杂程度越来越高1.1.2运维复杂程度越来越高2云计算定义2.1常规定义:2.2(NIST)定义:3云计算要素3.1资源池3.2云计算平台3.3 部署模式 3.3.1公有云 3... 查看详情

什么是云原生应用?云原生的设计原则有哪些?

1 什么是云原生1.1 云原生起源云原生是一种软件开发方法,它充分利用了云计算,使用开源软件技术栈将应用程序部署为微服务。通常,云原生应用程序构建为在Docker容器中运行的一组微服务,在Kubernetes中编... 查看详情

[云原生专题-1]:总体-云原生初步探究,什么是云原生,云原生的基本特性

...tps://blog.csdn.net/HiWangWenBing/article/details/122591920目录第1章云原生CloudNative的字面解读第2章云原生诞生的背景2.1云原生的诞生源于互联网业务发展的需求:2.2业务运营企业面临的挑战:2.3应对上述问题的技术和软件工程措施... 查看详情

kubernetes和云原生

1.云原生相关1.1.什么是云原生CloudNative最早是在2013年由Pivotal公司的MattStine提出的。2015年CNCF(CloudNativeComputingFoudation,云原生计算基金会)成立。官方发布的云原生v1.0定义是:“云原生技术有利于各组织在公有云、私有云和混合... 查看详情

数组均分策略是归并的第一特点第一集(代码片段)

...并排序中的第一个要点:将数组均等的一分为二.,这是什么意思呢?,也就是我们不是将数组拆分成:978416——>97|8416尽管这也是将原问题分解成同类的子问题,但是这些子问题的规模不一致,但是请别搞错了,这仍然... 查看详情