【云原生_K8S系列】Kubernetes 控制器简介

打印 上一主题 下一主题

主题 512|帖子 512|积分 1536

概述

Kubernetes是一个开源的容器编排平台,旨在自动化部署、扩展和管理容器化应用。Kubernetes 的核心组件之一是控制器(Controller),它负责确保集群中的现实状态与用户界说的期望状态一致。控制器是 Kubernetes 控制平面的一个重要构成部分,通过连续监控集群的状态并实行必要的操纵来维护集群的康健和稳定。
控制器的工作原理

控制器基于控制循环(Control Loop)工作,这是一种反馈机制,用于连续对比当前状态和期望状态,并采取措施将两者保持一致。控制器的基本流程如下:

  • 观察:控制器通过 API 服务器获取集群的当前状态。
  • 分析:将当前状态与期望状态举行对比。
  • 办法:假如当前状态与期望状态不符,控制器会实行必要的操纵(如创建、更新或删除资源)以达到期望状态。
常见的 Kubernetes 控制器


Deployment 控制器

Deployment 控制器是一种用于管理应用部署的高级工具。它提供滚动更新、回滚和扩展等功能,使用户能够轻松地更新应用版本,并在更新过程中保持服务的高可用性。通过 Deployment,用户只需声明目标状态,Deployment 控制器会自动对 ReplicaSet 举行操纵,以确保集群达到期望的状态。
相比于传统的 ReplicationController,Deployment 提供了一种更为便捷的声明式界说方法。这意味着用户只需描述 Deployment 中的目标状态,而不必手动调解 ReplicaSet,Deployment 控制器会自动举行必要的调解,从而实现更高效、更易管理的应用部署。
典型的应用场景



  • 界说 Deployment 来创建 ReplicaSet 和 Pod
  • 滚动升级和回滚应用
  • 扩容和缩容
  • 暂停和继承 Deployment

   Deployment 并不是直接受理或创建 Pod,而是通过创建和管理 ReplicaSet 来实现这一目标。当创建一个名为 nginx-Deploy 的 Deployment 时,系统会同时创建一个 ReplicaSet,其名称情势为 nginx-Deploy-xxx,此中xxx 是一个随机码。这个 ReplicaSet 再进一步创建和管理相应的 Pod
  DaemonSet 控制器

DaemonSet 确保在所有(或部分)节点上运行一个 Pod 副本。当有新节点加入集群时,DaemonSet 会在这些节点上新增一个 Pod;当节点从集群中移除时,相应的 Pod 也会被删除。删除 DaemonSet 会移除它所创建的所有 Pod。
假如需要在每个节点上运行多个 Pod,可以通过界说多个 DaemonSet 来实现。
通常情况下,一个 DaemonSet 将覆盖所有的节点。复杂一点儿的用法,可能会为某一类保卫进程设置多个 DaemonSets,每一个 DaemonSet 针对不同类硬件类型设定不同的内存、cpu请求。
典型的应用场景



  • 日记收集:比如 fluentd,logstash 等
  • 系统监控:比如 Prometheus Node Exporter,collectd,New Relic agent,Ganglia gmond 等
  • 系统步伐:比如 kube-proxy, kube-dns, glusterd, ceph 等
StatefulSet 控制器

StatefulSet 控制器用于管理有状态应用,例如数据库或需要稳定网络标识的应用。与 ReplicaSet 不同,StatefulSet 确保每个 Pod 都有唯一的标识和恒久存储,从而支持应用的有序部署和扩展。
典型的使用场景

对于有如下要求的应用步伐,StatefulSet 非常适用:


  • 稳定、唯一的网络标识(dnsname)
  • 每个Pod始终对应各自的存储路径(PersistantVolumeClaimTemplate)
  • 按顺序地增长副本、减少副本,并在减少副本时实行清算
  • 按顺序自动地实行滚动更新
Job 控制器

Job 控制器用于批处置处罚任务,确保一组 Pod 在乐成完成其工作后制止。Job 控制器适用于一次性任务或周期性任务,如数据处置处罚和分析。
CronJob 控制器

CronJob 控制器用于定时实行 Job,雷同于 Linux 的 cron 调理。它答应用户按照预定的时间表实行任务,适用于定期备份、报告天生等场景。


结论

Kubernetes 控制器在维护集群稳定性和实现自动化运维方面起着至关重要的作用。通过控制循环机制,控制器能够确保集群的现实状态始终符适用户的期望,从而实现高效的资源管理和应用部署。了解和蔼用各种控制器,可以帮助我们更好地管理和扩展 Kubernetes 集群,提升团体系统的可靠性和可维护性。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

立聪堂德州十三局店

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表