kubernetes集群架构解读

简介: 1. kubernetes总架构图2. kubernetes 各组件介绍2.1 Master 节点Master是kubernetes的大脑,运行的Deamon 服务包括kube-apiserver、kube-scheduler、kube-contronller-manager、etcd和pod网络2.1.1 各组件介绍API Server(kube-apiserver)API Server提供HTTP/HTTPS RESTful API,即Kubernetes API。

1. kubernetes总架构图

image

2. kubernetes 各组件介绍

2.1 Master 节点

Master是kubernetes的大脑,运行的Deamon 服务包括kube-apiserver、kube-scheduler、kube-contronller-

manager、etcd和pod网络

image

2.1.1 各组件介绍
  • API Server(kube-apiserver)

API Server提供HTTP/HTTPS RESTful API,即Kubernetes API。API Server是Kubernetes Cluster的前端接

口,各种客户端工具(CLI或UI)以及Kubernetes其他组件可以通过它管理Cluster的各种资源。

  • Scheduler(kube-scheduler)

Scheduler负责决定将Pod放在哪个Node上运行。Scheduler在调度时会充分考虑Cluster的拓扑结构,当前各个

节点的负载,以及应用对高可用、性能、数据亲和性的需求。

  • Controller Manager(kube-controller-manager)

Controller Manager负责管理Cluster各种资源,保证资源处于预期的状态。Controller Manager由多种Controller

组成,包括replication controller、endpoint controller、namespace controller、serviceaccounts controller等。

不同的controller管理不同的资源。例如,replication controller管理Deployment、StatefulSet、DaemonSet的生

命周期,namespace controller管理Namespace资源。

  • etcd

etcd负责保存Kubernetes Cluster的配置信息和各种资源的状态信息。当数据发生变化时,etcd会快速通知

Kubernetes相关组件。

  • Pod网络

Pod要能够相同通信,Kubernetes Cluster必须部署Pod网络,flannel是其中一个可选方案。

2.1.2 master工作流程图

image

  1. Kubecfg将特定的请求,比如创建Pod,发送给Kubernetes Client。
  2. Kubernetes Client将请求发送给API server。
  3. API Server根据请求的类型,比如创建Pod时storage类型是pods,然后依此选择何种REST Storage API对请求作出处理。
  4. REST Storage API对的请求作相应的处理。
  5. 将处理的结果存入高可用键值存储系统Etcd中。
  6. 在API Server响应Kubecfg的请求后,Scheduler会根据Kubernetes Client获取集群中运行Pod及Minion/Node信息。
  7. 依据从Kubernetes Client获取的信息,Scheduler将未分发的Pod分发到可用的Minion/Node节点上。

2.2 Node节点

Node节点属于工作节点,是pod运行的地方。

image

2.2.1 各组件介绍
  1. kubelet 

node的agent,当scheduler去确定在某个node上运行pod后,会将pod的具体配置信息发送给该节点的

kubelet, kubelet会根据遮羞信息创建和运行容器,并向master报告运行状态。

  1. kube-proxy

    每个node都会运行kube-proxy服务,外界通过service访问pod,kube-proxy负责将降访问service的TCP/UDP数

    据流转发到后端的容器。如果有多个副本,kube-proxy会实现负载均衡。

    1. pod网络

    pod能能够互相通信,k8s集群必须部署pod网络,flannel是其中一个可以选择的方案

2.2.2 kubectl 架构解读

image

Kubelet[节点上的Pod管家]

负责Node节点上pod的创建、修改、监控、删除等全生命周期的管理
定时上报本Node的状态信息给API Server。

kubelet是Master API Server和Minion/Node之间的桥梁,接收Master API Server分配给它的commands和work,

通过kube-apiserver间接与Etcd集群交互,读取配置信息。
具体的工作如下:

  1. 设置容器的环境变量、给容器绑定Volume、给容器绑定Port、根据指定的Pod运行一个单一容器、给指定的Pod创建network 容器。
  2. 同步Pod的状态、同步Pod的状态、从cAdvisor获取container info、 pod info、 root info、 machine info。
  3. 在容器中运行命令、杀死容器、删除Pod的所有容器。

查看集群节点信息

kubectl get nodes -o wide

在这里插入图片描述
参考链接:https://yq.aliyun.com/articles/47308?spm=5176.100240.searchblog.19.jF7FFa

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
9天前
|
存储 Kubernetes 关系型数据库
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
本文源自2024云栖大会苏雅诗的演讲,探讨了K8s集群业务为何需要灾备及其重要性。文中强调了集群与业务高可用配置对稳定性的重要性,并指出人为误操作等风险,建议实施周期性和特定情况下的灾备措施。针对容器化业务,提出了灾备的新特性与需求,包括工作负载为核心、云资源信息的备份,以及有状态应用的数据保护。介绍了ACK推出的备份中心解决方案,支持命名空间、标签、资源类型等维度的备份,并具备存储卷数据保护功能,能够满足GitOps流程企业的特定需求。此外,还详细描述了备份中心的使用流程、控制台展示、灾备难点及解决方案等内容,展示了备份中心如何有效应对K8s集群资源和存储卷数据的灾备挑战。
|
21天前
|
Kubernetes Cloud Native 持续交付
容器化、Kubernetes与微服务架构的融合
容器化、Kubernetes与微服务架构的融合
39 1
|
1月前
|
Kubernetes 监控 Cloud Native
Kubernetes集群的高可用性与伸缩性实践
Kubernetes集群的高可用性与伸缩性实践
71 1
|
1月前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
1月前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
|
1月前
|
安全 持续交付 Docker
微服务架构和 Docker 容器化部署的优点是什么?
微服务架构和 Docker 容器化部署的优点是什么?
|
1月前
|
存储 监控 Docker
探索微服务架构下的容器化部署
本文旨在深入探讨微服务架构下容器化部署的关键技术与实践,通过分析Docker容器技术如何促进微服务的灵活部署和高效管理,揭示其在现代软件开发中的重要性。文章将重点讨论容器化技术的优势、面临的挑战以及最佳实践策略,为读者提供一套完整的理论与实践相结合的指导方案。
|
1月前
|
存储 缓存 NoSQL
【赵渝强老师】Memcached集群的架构
Memcached 是一个高性能的分布式内存对象缓存系统,通过在内存中维护一个巨大的 Hash 表来存储各种格式的数据,如图像、视频、文件及数据库检索结果等。它主要用于减轻数据库压力,提高网站系统的性能。Memcached 不支持数据持久化,因此仅作为缓存技术使用。其数据分布式存储由客户端应用程序实现,而非服务端。
【赵渝强老师】Memcached集群的架构
|
1月前
|
调度 Docker 容器
【赵渝强老师】Docker Swarm集群的体系架构
Docker Swarm自1.12.0版本起集成至Docker引擎,无需单独安装。它内置服务发现功能,支持跨多服务器或宿主机创建容器,形成集群提供服务。相比之下,Docker Compose仅限于单个宿主机。Docker Swarm采用主从架构,Swarm Manager负责管理和调度集群中的容器资源,用户通过其接口发送指令,Swarm Node根据指令创建容器运行应用。
|
15天前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。