博客
关于我
Kubernetes学习总结(2)——Kubernetes设计架构
阅读量:791 次
发布时间:2023-01-29

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

Kubernetes集群架构

Kubernetes是一个分布式系统,基于以Etcd为核心的分布式存储解决方案。它包含Node代理kubelet和Master组件,提供API、调度等功能。

核心组件概述

Kubernetes的组件设计分为几个关键部分,每个部分负责不同的职责。

  • Etcd:保存集群状态,支持增删改查操作,并通过 watcher机制实现实时状态同步,保证集群高效运转。

  • API Server:提供Kubernetes资源操作的唯一入口,支持认证、授权、访问控制以及API注册发现等功能,所有操作都通过REST API接口完成。

  • Controller Manager:维护集群状态,执行故障检测、自动扩展、滚动更新等核心职能,确保集群稳定和高效运行。

  • Scheduler:负责Pod的调度,通过预定策略将Pod分配到最合适的节点实现资源优化配置。

  • Kubelet:运行在每个Node节点,管理Pod和容器的生命周期,处理镜像、体积(Volume)和网络(Network Interface)相关事务。

  • Kube-proxy:提供服务发现和负载均衡功能,确保集群内服务间通信效率。

  • 9 Container Runtime (CRI):实现容器镜像管理和运行环境,协调Pod和容器的实际运行。

    此外,Kubernetes还配备多种扩展组件:

  • Kube-dns:为整个集群提供DNS服务,支持域名解析。

  • Ingress Controller:管理外网入口,提供服务访问入口。

  • Heapster:提供集群资源监控功能。

  • Kubernetes Dashboard:提供集群管理界面,方便用户操作和监控。

  • 这些组件构建了一个完整的容器集群管理平台,支持自动缩放、自愈维护等高级功能。

    分层架构

    Kubernetes采用分层架构,各层之间具有清晰的职责划分:

  • 核心层:实现Kubernetes的基本功能,为外部提供标准化API,便于插件扩展。

  • 应用层

    • 无状态应用:如Web应用、API服务器等,易于扩展和迁移。
    • 有状态应用:通过 Persisted Volume 实现状态持久化。
    • 批处理任务:如数据处理 pipeline。
    • 集群应用:通过调度算法实现负载均衡和资源优化。
  • 管理层:处理系统度量、自动化和策略管理。

    • 系统度量:监控集群运行状态,包括CPU、内存、网络等资源使用情况。
    • 自动化:实现集群自动扩展、动态分配等功能。
    • 策略管理:包括RBAC、资源配额、策略月包等。
  • 接口层

    • 提供命令行工具(如kubectl)。
    • 开发Renderer库,支持多语言API访问。
    • 实现集群联邦功能,支持多集群调度。
  • 生态系统

    • 外部服务:包括日志配送、监控工具、配置管理工具、持续集成/交付方案、工作流、函数计算等。
    • 内部服务:如CRI、CNI、CVI,以及存储后端(如Etcd)、镜像仓库、云提供商集成等。
  • 组件详解

    以下是几个关键组件的详细说明:

  • Kubernetes节点
  • 每个Kubernetes节点运行Docker,同时接收调度客户端的Pod请求,通过kubelet管理Pod及其内的容器状态。Kubelet作为每个节点的负责人,确保镜像下载、容器运行及资源管理正常。

    1. Kubernetes控制面板
    2. 控制面板功能分散,但采用高可用策略,确保集群状态的持续可用性。各部分协同工作,提供全局集群视图,支持故障排查和集群自愈。

      此外,可视化工具(如Kubernetes-dashboard)将控制面板信息展示为直观界面,便于操作人员管理和观察集群状态。

      1. Replication Controller
      2. 作为核心控制器,Replication Controller通过Division API确保每个Pod的副本数量符合预定配置。这个机制可以扩展为通用插件,支持多种部署模式。

        推荐文献:

    转载地址:http://tlryk.baihongyu.com/

    你可能感兴趣的文章
    LeetCode-Binary Tree Maximum Path Sum
    查看>>
    Leetcode-Daily: Maximum Binary Tree
    查看>>
    Leetcode-Interleaving String
    查看>>
    LeetCode-Isomorphic Strings
    查看>>
    LeetCode.两数之和&三数之和&最接近的三数之和&四数之和
    查看>>
    LeetCode110.平衡二叉树
    查看>>
    LeetCode111.二叉树最小深度
    查看>>
    LeetCode114.二叉树展开为链表[后序遍历典例]
    查看>>
    LeetCode136.只出现一次的数字[异或运算典例]
    查看>>
    LeetCode13:罗马数字转整数
    查看>>
    Leetcode160 两个链表是否相交
    查看>>
    leetcode190-颠倒二进制位
    查看>>