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

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

3天内不再提示

Kubernetes是怎样工作的?

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

什么是 Kubernetes?

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

您可以将运行 Linux® 容器的主机组集群在一起,Kubernetes 可帮助您轻松高效地管理这些集群。

Kubernetes 集群 可以跨越本地、公共、 私有或 混合云的主机,因此,Kubernetes 是托管 需要快速扩展的云原生应用程序的理想平台 ,例如通过Apache Kafka的实时数据流 。

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

为什么我们需要 Kubernetes?

保持容器化应用程序的启动和运行可能很复杂,因为它们通常涉及部署在不同机器上的许多容器,Kubernetes 提供了一种调度和部署这些容器的方法,并将它们扩展到您想要的状态并管理它们的生命周期,使用 Kubernetes 以可移植、可扩展和可扩展的方式实现基于容器的应用程序。

Kubernetes 的好处?

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

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

Kubernetes 提供:

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

Kubernetes 如何工作?

随着应用程序扩展到跨多个服务器部署的多个容器,操作它们变得更加复杂,为了管理这种复杂性,Kubernetes 提供了一个开源 API,用于控制这些容器的运行方式和位置。

Kubernetes 编排虚拟机集群并根据它们的可用计算资源和每个容器的资源要求安排容器在这些虚拟机上运行,容器被分组为 pod ,这是 Kubernetes 的基本操作单元,这些 pod 可以扩展到您想要的状态。

图片

Kubernetes 还自动管理服务发现、整合负载平衡、跟踪资源分配并根据计算利用率进行扩展,而且,它会检查单个资源的健康状况,并通过自动重启或复制容器使应用程序能够自我修复。

图片

  1. 在同一个 Kubernetes 集群中一起快速迭代、测试和调试应用程序的不同部分。
  2. 将代码合并并检查到 GitHub 存储库中以进行持续集成,然后,运行自动化构建和测试作为持续交付的一部分。
  3. 验证容器镜像的来源和完整性,图像被隔离,直到它们通过扫描。
  4. 使用 Terraform 等工具配置 Kubernetes 集群。Terraform 安装的 Helm 图表定义了应用程序资源和配置的所需状态。
  5. 实施策略来管理对 Kubernetes 集群的部署。
  6. 发布管道自动对每个代码执行预定义的部署策略。
  7. 向 CI/CD 管道添加策略审计和自动修复,例如,只有发布管道有权在您的 Kubernetes 环境中创建新的 Pod。
  8. 启用应用遥测、容器运行状况监控和实时日志分析。
  9. 用洞察力解决问题并为下一个冲刺制定计划。

什么是POD?

Kubernetes pod 是一组 容器 ,是 Kubernetes 管理的 最小单元 ,Pod 有一个 IP 地址,应用于 Pod 内的每个容器。Pod 中的容器共享相同的资源,例如内存和存储,这允许将 pod 内的各个 Linux 容器作为一个应用程序共同处理,就好像所有容器化进程在更传统的工作负载中在同一台主机上一起运行一样。

当应用程序或服务是需要运行的单个进程时,只有一个容器的 pod 是很常见的,但是当事情变得更复杂,多个进程需要使用相同的共享数据卷协同工作才能正确运行时,

例如,如果您正在使用创建 GIF 的图像处理服务,一个 pod 可能有多个容器协同工作来调整图像大小,主容器可能正在运行接收请求的非阻塞微服务应用程序,然后一个或多个辅助(side-car)容器运行批处理后台进程或清理存储卷中的数据工件,作为管理整体应用程序性能的一部分。

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

    关注

    87

    文章

    10990

    浏览量

    206736
  • 容器
    +关注

    关注

    0

    文章

    481

    浏览量

    21883
  • 开源平台
    +关注

    关注

    0

    文章

    7

    浏览量

    6805
  • kubernetes
    +关注

    关注

    0

    文章

    219

    浏览量

    8568
收藏 人收藏

    评论

    相关推荐

    Kubernetes的Device Plugin设计解读

    工作节点,到设备与容器的实际绑定。首先思考的第一个问题是为什么进入alpha.kubernetes.io/nvidia-gpu主干一年之久的GPU功能彻底移除?OutOfTree
    发表于 03-12 16:23

    理解和创建Kubernetes对象

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

    Kubernetes经验总结

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

    kubernetes集群配置

    基于v1104版本手动搭建高可用kubernetes 集群
    发表于 08-19 08:07

    浅析Kubernetes

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

    不吹不黑,今天我们来聊一聊 Kubernetes 落地的三种方式

    云原生的方向发展演进。不管怎样,对于用户而言,改变以往虚拟机的部署和管理方式以及服务的治理策略是必要的。不得不说,All in Kubernetes 是一个趋势,CRD 自 Kubernetes 1.7
    发表于 10-12 16:07

    kubernetes部署与应用

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

    Kubernetes平台中的日志收集方案

    十、Kubernetes平台中日志收集
    发表于 11-04 09:19

    kubernetes系统基本概念

    一文带你看透kubernetes 容器编排系统
    发表于 11-05 08:26

    Kubernetes Dashboard实践学习

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

    Kubernetes API详解

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

    如何创建Kubernetes jobs和cronjobs?

    Kubernetes jobs主要是针对短时和批量的工作负载。
    的头像 发表于 06-15 14:04 1455次阅读
    如何创建<b class='flag-5'>Kubernetes</b> jobs和cronjobs?

    KUBERNETES工作原理是什么

    Kubernetes 提供了一个框架,用于部署、管理、扩展和切换分布式容器,这些容器是随依赖项和配置打包的微服务。
    的头像 发表于 06-10 13:19 1457次阅读

    Kubernetes Pod如何独立工作

    在学习 Kubernetes 网络模型的过程中,了解各种网络组件的作用以及如何交互非常重要。本文就介绍了各种网络组件在 Kubernetes 集群中是如何交互的,以及如何帮助每个 Pod 都能获取 IP 地址。
    的头像 发表于 05-16 14:29 429次阅读
    <b class='flag-5'>Kubernetes</b> Pod如何独立<b class='flag-5'>工作</b>

    Commvault:护航Kubernetes,不止Kubernetes

    Kubernetes已经不再是只存在于路线图中的未来产品。事实上,几乎所有(94%)已经采用容器的企业都在使用Kubernetes,大多数(86%)企业甚至认为它对他们的运营至关重要。这并不令人意外,Kubernetes正在帮助
    的头像 发表于 07-07 14:42 306次阅读