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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 【kubernetes技术专题】Kubernetes架构分析介绍篇(入门篇)

官方网站


Kubernetes中文官方网站

Kubernetes英文官方网站




Kubernetes基本介绍


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


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




什么是Borg


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


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

image.png

  • BorgMaster是整个集群的大脑,负责维护整个集群的状态,并将数据持久化到Paxos存储中;
  • Scheduer负责任务的调度,根据应用的特点将其调度到具体的机器上去;


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


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




Kubernetes基本结构


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

image.png

Kubernetes核心组件


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


  1. apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
  2. controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;


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


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


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


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


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


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


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


  1. Prometheus 提供资源监控


  1. Dashboard 提供 GUI


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




Kubernetes内部结构图


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

image.png



kubernetes外部结构图

image.png

Master架构

image.png



Node架构

image.png



分层架构

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

image.png


  • 核⼼层: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、集群⾃身的配置和管理等



相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
7天前
|
运维 Kubernetes Cloud Native
云原生技术:容器化与微服务架构的完美结合
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术以其灵活性和高效性成为企业的新宠。本文将深入探讨云原生的核心概念,包括容器化技术和微服务架构,以及它们如何共同推动现代应用的发展。我们将通过实际代码示例,展示如何在Kubernetes集群上部署一个简单的微服务,揭示云原生技术的强大能力和未来潜力。
|
5天前
|
存储 分布式计算 关系型数据库
架构/技术框架调研
本文介绍了微服务间事务处理、调用、大数据处理、分库分表、大文本存储及数据缓存的最优解决方案。重点讨论了Seata、Dubbo、Hadoop生态系统、MyCat、ShardingSphere、对象存储服务和Redis等技术,提供了详细的原理、应用场景和优缺点分析。
|
7天前
|
监控 API 微服务
后端技术演进:从单体架构到微服务的转变
随着互联网应用的快速增长和用户需求的不断演化,传统单体架构已难以满足现代软件开发的需求。本文深入探讨了后端技术在面对复杂系统挑战时的演进路径,重点分析了从单体架构向微服务架构转变的过程、原因及优势。通过对比分析,揭示了微服务架构如何提高系统的可扩展性、灵活性和维护效率,同时指出了实施微服务时面临的挑战和最佳实践。
26 7
|
5天前
|
传感器 算法 物联网
智能停车解决方案之停车场室内导航系统(二):核心技术与系统架构构建
随着城市化进程的加速,停车难问题日益凸显。本文深入剖析智能停车系统的关键技术,包括停车场电子地图编辑绘制、物联网与传感器技术、大数据与云计算的应用、定位技术及车辆导航路径规划,为读者提供全面的技术解决方案。系统架构分为应用层、业务层、数据层和运行环境,涵盖停车场室内导航、车位占用检测、动态更新、精准导航和路径规划等方面。
32 4
|
6天前
|
Kubernetes Cloud Native 持续交付
云原生技术在现代应用架构中的实践与思考
【10月更文挑战第38天】随着云计算的不断成熟和演进,云原生(Cloud-Native)已成为推动企业数字化转型的重要力量。本文从云原生的基本概念出发,深入探讨了其在现代应用架构中的实际应用,并结合代码示例,展示了云原生技术如何优化资源管理、提升系统弹性和加速开发流程。通过分析云原生的优势与面临的挑战,本文旨在为读者提供一份云原生转型的指南和启示。
20 3
|
6天前
|
运维 Kubernetes Cloud Native
云原生技术在现代应用架构中的实践与挑战####
本文深入探讨了云原生技术的核心概念、关键技术组件及其在实际项目中的应用案例,分析了企业在向云原生转型过程中面临的主要挑战及应对策略。不同于传统摘要的概述性质,本摘要强调通过具体实例揭示云原生技术如何促进应用的灵活性、可扩展性和高效运维,同时指出实践中需注意的技术债务、安全合规等问题,为读者提供一幅云原生技术实践的全景视图。 ####
|
7天前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
7天前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
|
7天前
|
安全 持续交付 Docker
微服务架构和 Docker 容器化部署的优点是什么?
微服务架构和 Docker 容器化部署的优点是什么?
|
24天前
|
JSON Kubernetes 容灾
ACK One应用分发上线:高效管理多集群应用
ACK One应用分发上线,主要介绍了新能力的使用场景