0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Kubernetes特性有哪些?

jf_78858299 来源:运维漫谈 作者:运维漫谈 2023-05-12 16:16 次阅读

本文将介绍Kubernetes 的重要特性,这将有助于您更深入地了解 Kubernetes 的功能概念。

    1. 自动装箱
    1. 服务发现和负载均衡
    1. 存储编排
    1. 自愈
    1. 自动推出和回滚
    • 5.1. 推出
    • 5.2. 回滚
    1. Secret和配置映射
    • 6.1. Secret
    • 6.2. 配置映射
    1. 水平缩放
    1. 结论

1. 自动装箱

这是 Kubernetes 最显着的特性之一,Kubernetes 根据所需资源和其他限制条件智能地定位容器,而不会影响可用性。

Kubernetes 提供资源管理,它可以自动指定 Pod 中的每个容器如何消耗 CPURAM 等资源。

图片

2. 服务发现和负载均衡

服务发现和负载均衡在 Kubernetes 中作为服务提供,服务以一致的方式跨集群将 Pod 连接到网络。确定如何连接到服务的过程称为服务发现。

容器的集合是 POD,具有相同功能集的 POD 被组合成一个集合,称为服务。

每个 POD 将被分配一个 IP 地址和单个 DNS 名称用于服务(POD 集),借助这种架构,Kubernetes 将对 POD 之间的网络和通信进行明确定义的控制,并且可以实现负载平衡。

图片

在组成单个服务的实例集合前放置负载均衡器(反向代理,如 Nginx 或 HAProxy)是解决服务发现问题的常用技术。

负载平衡器的地址(DNS 名称,或者通常情况下是 IP)是一个相当可靠的数据,它可以在开发或配置阶段提供给客户端,并且可以在单个客户端的生命周期中保持不变。

之后,从客户端的角度来看,联系多实例服务与访问单个网络端点没有什么不同,换句话说,服务发现完全发生在服务器端。

3. 存储编排

用户可以使用 Kubernetes 挂载他们想要的任何存储系统,包括本地存储、公共云提供商等。仍然必须提供底层存储系统。

对于用户和管理人员,Kubernetes 提供了一个 API,它将存储交付方式与存储使用方式的细节隔离开来。

关于将持久性存储与 Kubernetes 集成,有几个术语需要理解。,它们如下:

  • 容器存储接口CSI):它是一个标准,允许所有容器编排器以一致的方式连接存储系统,例如Ondat。存储供应商应该在 CSI 发布之前将他们的集成层直接写入 Kubernetes 源代码。因此,升级既困难又耗时,因为任何缺陷都可能导致 Kubernetes 崩溃。
  • 存储类:管理员可以预先定义 Kubernetes 用户能够使用 Kubernetes 存储类提供和附加到他们的应用程序的存储类型。
  • 持久卷 (PV):持久卷是已作为卷添加到集群中的虚拟存储实例。PV可以引用物理存储硬件或软件定义的存储,例如Ondat。
  • 持久卷声明 (PVC):这是对要供应的某种类型和配置的存储的请求。

4. 自愈

Kubernetes 的自我修复能力是其最吸引人的功能之一,如果容器化应用程序或应用程序组件出现故障,Kubernetes 将自动重新加载它。

Kubernetes 的编排功能可以根据设置监控和替换不健康的容器,Pods 是封装单个或多个容器的最小单元,也可以由 Kubernetes 修复。

在自愈过程中,复制控制器通过执行以下任务来确保应用程序的容错或可用性。

  • 如果容器出现故障,Kubernetes 会重新启动容器。
  • 如果任何节点出现故障,Kubernetes 会重新安排其他节点上的容器。
  • 如果容器没有响应客户端/用户,Kubernetes 会终止容器。

图片

5. 自动推出和回滚

5.1. 推出

尽管开发人员希望更新应用程序的代码,但企业的目标是使应用程序的停机时间为零。应用程序的更新称为rollout,这是在 Kubernetes 中使用滚动升级完成的。

通过使用新的 Pod 实例逐步升级,滚动更新允许在零停机时间的情况下更新部署,新的 Pod 将被安排在有可用资源的节点上。

图片

  • 客户端使用新版本的 POD 进行更新,例如 V2。
  • 在一个副本集中,只允许使用相同版本的 POD,因此,Kubernetes 将创建副本集 2,其中将添加新版本的 POD V2,并确保健康检查,一旦 POD V2 运行良好,它将取代其中一个 POD V1。
  • 它将遵循相同的规则并将所有 POD V1 替换为 POD V2。

5.2. 回滚

当 Deployment 不稳定时,例如当它循环崩溃时,您可能需要回滚 Deployment。默认情况下,系统会保存所有 Deployment 的 rollout 历史,以便您可以随时回滚。

在上图中,POD V1 被保留在历史记录中,以便您在发现 POD V2 的部署有任何问题时可以回滚。

6. Secret和配置映射

6.1. Secret

Secret是一小段机密数据,例如密码、令牌或密钥。或者,此类信息可能包含在 Pod 规范或容器映像中。

如果您使用 Secret,则不必在应用程序代码中包含机密数据,在处理Secret时,有两个层面需要考虑。

必须首先创建Secret,然后才能将其引入到 Pod 中,与其将机密数据放在容器图片或 Pod 定义中,不如将其保密更安全、更具适应性。

6.2. 配置映射

ConfigMap 是一个键值对存储,它是一个用于存储非机密数据的 API 对象,Pod 可以将 ConfigMap 用作环境变量、命令行参数或卷配置文件。

它允许您将特定于环境的配置与容器映像分离,从而允许您简单地移植应用程序。

ConfigMaps 的配置分为两个阶段,第一步是制作 ConfigMap,然后将它们注入到 pod 中。

图片

7. 水平缩放

当对工作负载的需求增加或减少时,Kubernetes 可以自动增加或减少为该作业提供服务的 pod 副本的数量。

Horizontal Pod Autoscaler 在 Kubernetes 中实现为控制器和 API 资源。控制器的行为由资源决定。

控制器定期调整复制控制器或部署中的副本数量,以将观察到的指标(如平均 CPU 利用率、平均内存利用率或任何其他自定义统计数据)与用户的目标相匹配。

图片

8. 结论

在本文中,我们已经对 Kubernetes 的关键特性进行了概念性的理解。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10855

    浏览量

    211601
  • Linux
    +关注

    关注

    87

    文章

    11295

    浏览量

    209348
  • kubernetes
    +关注

    关注

    0

    文章

    224

    浏览量

    8712
收藏 人收藏

    评论

    相关推荐

    Kubernetes的Device Plugin设计解读

    摘要: Kubernetes的生态地位已经确立,可扩展性将是其发力的主战场。异构计算作为非常重要的新战场,Kubernetes非常重视。而异构计算需要强大的计算力和高性能网络,需要提供一种统一的方式
    发表于 03-12 16:23

    理解和创建Kubernetes对象

    Kubernetes对象总结
    发表于 04-11 15:14

    Kubernetes经验总结

    Kubernetes学习笔记——24 允许外部访问
    发表于 06-18 12:10

    浅析Kubernetes

    【k8s】Kubernetes基础概念
    发表于 09-27 09:11

    kubernetes部署与应用

    kubernetes运维笔记
    发表于 10-25 13:08

    Kubernetes Dashboard实践学习

    关于Kubernetes Dashboard的实践学习
    发表于 04-10 14:09

    Kubernetes上运行Kubernetes

    开源容器编排引擎 Kubernetes 绝对魔力。 一直以来,容器就是个很酷的概念,但事实上,广泛部署却十分困难。你几乎没法手动管理容器之间的网络、持续存储和数百个容器间的自动扩展,而一个让人
    发表于 09-30 13:33 0次下载
    在<b class='flag-5'>Kubernetes</b>上运行<b class='flag-5'>Kubernetes</b>

    Kubernetes API详解

    摘要:Kubernetes是Google开源的容器集群管理系统。它构建Ddocker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等整一套功能,本文节选自龚正
    发表于 10-12 16:19 0次下载
    <b class='flag-5'>Kubernetes</b> API详解

    Kubernetes网络隔离NetworkPolicy实验

    Kubernetes的一个重要特性就是要把不同node节点的pod(container)连接起来,无视物理节点的限制。但是在某些应用环境中,比如公有云,不同租户的pod不应该互通,这个时候就需要网络
    发表于 11-28 10:00 2667次阅读

    为什么了Docker还要Kubernetes

    “一千个读者眼里一千个哈姆雷特”。同样的话也适用于 Kubernetes,同样的系统在不同的开发人员眼中也是不同的,甚至在不同阶段对于它的理解也截然不同。
    的头像 发表于 02-12 12:16 2450次阅读
    为什么<b class='flag-5'>有</b>了Docker还要<b class='flag-5'>Kubernetes</b>

    云计算的发展:Kubernetes特性

    如果你对容器化感兴趣并且关注过,可能会听过许多关于Kubernetes的事情。随着云开发的重点转移到容器,Kubernetes等这些容器相关技术已经变得大受欢迎。什么是Kubernetes?为什么这项技术很重要呢?
    的头像 发表于 12-25 17:41 590次阅读

    kubernetes是怎么运作的

    kubernetes 已经成为容器编排领域的王者,它是基于容器的集群编排引擎,具备扩展集群、滚动升级回滚、弹性伸缩、自动治愈、服务发现等多种特性能力。 本文将带着大家快速了解 kubernetes ,了解我们谈论
    的头像 发表于 09-27 09:18 836次阅读

    带你快速了解 kubernetes

    kubernetes 已经成为容器编排领域的王者,它是基于容器的集群编排引擎,具备扩展集群、滚动升级回滚、弹性伸缩、自动治愈、服务发现等多种特性能力。 本文将带着大家快速了解 kubernetes
    的头像 发表于 01-17 10:00 1156次阅读

    Kubernetes中的逻辑组件

    Kubernetes是生产级别的容器编排系统,其物理集群Master和Node两种类型的节点
    的头像 发表于 02-15 10:46 1232次阅读
    <b class='flag-5'>Kubernetes</b>中的逻辑组件

    Kubernetes 监控利器功能特性

    Kubeshark 是专为 Kubernetes 设计的 API 流量分析器,它提供实时的 K8s 协议级别的可见性,可以捕获和监控所有在容器、Pod、节点和集群之间进出和流动的流量和负载。可以把它想象成专门针对 Kubernetes 重新发明的 TCPDump 和 Wi
    的头像 发表于 05-17 16:10 640次阅读
    <b class='flag-5'>Kubernetes</b> 监控利器功能<b class='flag-5'>特性</b>