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

简介: 【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、集群⾃身的配置和管理等



相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
19天前
|
机器学习/深度学习 存储 人工智能
RAG系统文本检索优化:Cross-Encoder与Bi-Encoder架构技术对比与选择指南
本文将深入分析这两种编码架构的技术原理、数学基础、实现流程以及各自的优势与局限性,并探讨混合架构的应用策略。
94 10
RAG系统文本检索优化:Cross-Encoder与Bi-Encoder架构技术对比与选择指南
|
2月前
|
人工智能 运维 安全
MCP协议深度解析:客户端-服务器架构的技术创新
作为一名长期关注AI技术发展的博主摘星,我深刻感受到了MCP(Model Context Protocol)协议在AI生态系统中的革命性意义。MCP协议作为Anthropic公司推出的开放标准,正在重新定义AI应用与外部系统的交互方式,其基于JSON-RPC 2.0的通信机制为构建可扩展、安全的AI应用提供了坚实的技术基础。在深入研究MCP协议规范的过程中,我发现这一协议不仅解决了传统AI应用在资源访问、工具调用和上下文管理方面的痛点,更通过其独特的三大核心概念——资源(Resources)、工具(Tools)、提示词(Prompts)——构建了一个完整的AI应用生态系统。MCP协议的客户端-
227 0
MCP协议深度解析:客户端-服务器架构的技术创新
|
2月前
|
缓存 负载均衡 NoSQL
基于微服务架构的唯品会商品详情接口技术解析
本文介绍了唯品会电商平台商品详情接口的微服务化实现方案,涵盖架构设计、代码示例与性能优化策略。采用FastAPI构建服务,结合Redis缓存、异步处理、Nginx负载均衡等技术,实现高并发、低延迟的接口性能。
|
2月前
|
人工智能 数据可视化 Java
什么是低代码(Low-Code)?低代码核心架构技术解析与应用展望
低代码开发正成为企业应对业务增长与IT人才短缺的重要解决方案。相比传统开发方式效率提升60%,预计2026年市场规模达580亿美元。它通过可视化界面与少量代码,让非专业开发者也能快速构建应用,推动企业数字化转型。随着AI技术发展,低代码与AIGC结合,正迈向智能化开发新时代。
|
2月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
113 0
|
4月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
ACK One 的多集群应用分发,可以最小成本地结合您已有的单集群 CD 系统,无需对原先应用资源 YAML 进行修改,即可快速构建成多集群的 CD 系统,并同时获得强大的多集群资源调度和分发的能力。
142 9
|
4月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
本文介绍如何利用阿里云的分布式云容器平台ACK One的多集群应用分发功能,结合云效CD能力,快速将单集群CD系统升级为多集群CD系统。通过增加分发策略(PropagationPolicy)和差异化策略(OverridePolicy),并修改单集群kubeconfig为舰队kubeconfig,可实现无损改造。该方案具备多地域多集群智能资源调度、重调度及故障迁移等能力,帮助用户提升业务效率与可靠性。
|
6月前
|
存储 Kubernetes 监控
K8s集群实战:使用kubeadm和kuboard部署Kubernetes集群
总之,使用kubeadm和kuboard部署K8s集群就像回归童年一样,简单又有趣。不要忘记,技术是为人服务的,用K8s集群操控云端资源,我们不过是想在复杂的世界找寻简单。尽管部署过程可能遇到困难,但朝着简化复杂的目标,我们就能找到意义和乐趣。希望你也能利用这些工具,找到你的乐趣,满足你的需求。
566 33

热门文章

最新文章

推荐镜像

更多