Kubernetes学习总结(13)—— Kubernetes 各个组件的概念
发布日期:2025-04-03 05:54:29 浏览次数:8 分类:精选文章

本文共 1243 字,大约阅读时间需要 4 分钟。

Kubernetes 组件概述与应用实践

Node

Node 可以理解为 Kubernetes 集群中的实际运行服务单元,它可以是物理服务器或虚拟机。Node 负责运行Pod,并为其提供资源支持,这是 Kubernetes 集群运转的基础。

Pod

Pod 是 Kubernetes 中资源的最小单元,与 Docker 的容器类似,但Pod 可与多个容器关联。Pod 响应特定的网络和存储资源,因此其他Pod 可以通过 localhost 访问容器间服务。这一点通过 Pause 容器实现,允许多个容器共享网络和存储。

Pod 控制器

Kubernetes 集群需要控制Pod的数量和状态,以下是主要控制器的功能:

  • 管理Pod数量,确保Automatic Horizontal Scaling和Vertical Scaling
  • 监控Pod状态,执行滚动更新和恢复
  • 支持多种配置,根据需求选择合适的Pod控制器

目前,最常用的是Deployment,它结合了ReplicaSet的标签选择器,支持滚动更新、扩缩、暂停等更多操作。

ReplicationController 与 ReplicaSet

  • ReplicationController 负责Pod数量的严格控制,通过自动创建或删除Pod来保持数量一致。现在建议使用ReplicaSet替代。
  • ReplicaSet 扩展了ReplicationController的功能,支持集合式选择器,但通常由Deployment管理。

Deployment

Deployment 管理ReplicaSet,支持滚动更新、扩缩、暂停等多种操作,适合复杂的扩展和版本管理。通过创建新ReplicaSet逐步实现滚动更新,防止单点故障。

HorizontalPodAutoscaler(HPA)

HPA 根据Pod资源使用率调整数量,保持5到30个Pod。在资源充裕时增加到30,资源紧张时缩减到5,实现弹性扩展。

StatefulSet

用于有状态服务,提供持久化存储、本地网络标识、有序部署和删除等功能。基于PVC和Headless Service实现,适合依赖关系的服务。

DaemonSet

确保所有或特定Node运行一个Pod。可用于资源监控、日志收集等需求,与集群状态紧密相关。

Job与 CronJob

  • Job:执行批处理任务,确保成功结束或自动重试。
  • CronJob:基于时间创建Job,支持定时运行,适合定期任务。

服务发现与负载均衡

Service

Service 提供一组Pod的统一入口,实现负载均衡和内部访问。对于外部访问,Service 提供稳定的接口,避免依赖Pod数量变化。

Ingress

解决Service的四层负载均衡限制,通过模块化的Ingress实现多级负载均衡,支持域名路径转发。常用Ingress-nginx实现,支持动态配置。

通过合理使用上述组件,可以构建高可用、弹性的服务架构,适应各种应用场景。

上一篇:Kubernetes学习总结(14)—— Kubernetes 实用命令总结
下一篇:Kubernetes学习总结(12)—— 学习 kubernetes 的10个技巧或建议

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年04月28日 00时17分42秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章