写点什么

【kubernetes 技术专题】Kubernetes 架构分析介绍篇(入门篇)

作者:洛神灬殇
  • 2022-10-21
    江苏
  • 本文字数:1488 字

    阅读完需:约 1 分钟

【kubernetes技术专题】Kubernetes架构分析介绍篇(入门篇)

意志的出现不是对愿望的否定,而是把愿望合并和提升到一个更高的意识水平上。——罗洛·梅

官方网站

Kubernetes中文官方网站


Kubernetes英文官方网站

Kubernetes 基本介绍

Kubernetes 最初源于谷歌内部的 Borg,提供了面向应用的容器集群部署和管理系统。Kubernetes 的目标旨在消除编排物理/虚拟计算,网络和存储基础设施的负担,并使应用程序运营商和开发人员完全将重点放在以容器为中心的原语上进行自助运营。Kubernetes 也提供稳定、兼容的基础(平台),用于构建定制化的 workflows 和更高级的自动化任务。


Kubernetes 具备完善的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内建负载均衡器、故障发现和自我修复能力、服务滚动升级和在线扩容、可扩展的资源自动调度机制、多粒度的资源配额管理能力。Kubernetes 还提供完善的管理工具,涵盖开发、部署测试、运维监控等各个环节。

什么是 Borg

Borg 是谷歌内部的大规模集群管理系统,负责对谷歌内部很多核心服务的调度和管理。Borg 的目的是让用户能够不必操心资源管理的问题,让他们专注于自己的核心业务,并且做到跨多个数据中心的资源利用率最大化。


Borg 主要由 BorgMaster、Borglet、borgcfg 和 Scheduler 组成,如下图所示



  • BorgMaster 是整个集群的大脑,负责维护整个集群的状态,并将数据持久化到 Paxos 存储中;

  • Scheduer 负责任务的调度,根据应用的特点将其调度到具体的机器上去;

  • Borglet 负责真正运行任务(在容器中);

  • borgcfg 是 Borg 的命令行工具,用于跟 Borg 系统交互,一般通过一个配置文件来提交任务。

Kubernetes 基本结构

Kubernetes 借鉴了 Borg 的设计理念,⽐如:Pod、Service、Label 和单 Pod 单 IP 等。Kubernetes 的整体架构跟 Borg⾮常像,如下图所示。


Kubernetes 核心组件

  1. etcd 保存了整个集群的状态;

  2. apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制;

  3. controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;

  4. scheduler 负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上;

  5. kubelet 负责维护容器的生命周期,同时也负责 Volume(CVI)和网络(CNI)的管理;

  6. Container runtime 负责镜像管理以及 Pod 和容器的真正运行(CRI);

  7. kube-proxy 负责为 Service 提供 cluster 内部的服务发现和负载均衡;


除了核⼼组件,还有⼀些推荐的插件,其中有的已经成为 CNCF 中的托管项⽬:


  1. CoreDNS 负责为整个集群提供 DNS 服务

  2. Ingress Controller 为服务提供外⽹⼊⼝

  3. Prometheus 提供资源监控

  4. Dashboard 提供 GUI

  5. Federation 提供跨可⽤区的集群

Kubernetes 内部结构图

Kubernetes 的架构设计以及组件之间的通信协议


kubernetes 外部结构图

Master 架构

Node 架构

分层架构

Kubernetes 设计理念和功能其实就是⼀个类似 Linux 的分层架构,如下图所示。



  • 核⼼层:Kubernetes 最核⼼的功能,对外提供 API 构建⾼层的应⽤,对内提供插件式应⽤执⾏环境

  • 应⽤层:部署(⽆状态应⽤、有状态应⽤、批处理任务、集群应⽤等)和路由- (服务发现、DNS 解析等)、Service Mesh(部分位于应⽤层)

  • 管理层:系统度量(如基础设施、容器和⽹络的度量),⾃动化(如⾃动扩展、动态 Provision 等)以及策略管理(RBAC、Quota、PSP、NetworkPolicy 等)、Service Mesh(部分位于管理层)

  • 接⼝层:kubectl 命令⾏⼯具、客户端 SDK 以及集群联邦

  • ⽣态系统:在接⼝层之上的庞⼤容器集群管理调度的⽣态系统,可以划分为两个范畴

  • Kubernetes 外部:⽇志、监控、配置管理、CI/CD、Workflow、FaaS、OTS 应⽤、ChatOps、GitOps、SecOps 等

  • Kubernetes 内部:CRI、CNI、CSI、镜像仓库、Cloud Provider、集群⾃身的配置和管理等

发布于: 刚刚阅读数: 3
用户头像

洛神灬殇

关注

🏆InfoQ写作平台-签约作者🏆 2020-03-25 加入

【个人简介】酷爱计算机科学、醉心编程技术、喜爱健身运动、热衷悬疑推理的“极客达人” 【技术格言】任何足够先进的技术都与魔法无异 【技术范畴】Java领域、Spring生态、MySQL专项、微服务/分布式体系和算法设计等

评论

发布
暂无评论
【kubernetes技术专题】Kubernetes架构分析介绍篇(入门篇)_Kubernetes_洛神灬殇_InfoQ写作社区