K8S基础知识-K8S的架构

1.Kubernetes(K8S)架构

  K8S的目标旨在消除编排物理/虚拟计算,网络和存储基础设施的负担,并使应用程序运营商和开发人员完全将重点放在以容器为中心的原语上进行自助运营。Kubernetes 也提供稳定、兼容的基础(平台),用于构建定制化的workflows 和更高级的自动化任务。 Kubernetes 具备完善的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内建负载均衡器、故障发现和自我修复能力、服务滚动升级和在线扩容、可扩展的资源自动调度机制、多粒度的资源配额管理能力。

K8S架构图

K8S基础知识-K8S的架构_第1张图片
图片 - Kubernetes架构

核心组件(1-4属于master,5-7属于Nodes):
    1.etcd保存了整个集群的状态;
    2.apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
    3.controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
    4.scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;
    5.kubelet负责维护容器的生命周期,同时也负责Volume(CSI)和网络(CNI)的管理;
    6.Container runtime负责镜像管理以及Pod和容器的真正运行(CRI);
    7.kube-proxy负责为Service提供cluster内部的服务发现和负载均衡;
常用插件:
    CoreDNS负责为整个集群提供DNS服务
    Ingress Controller为服务提供外网入口
    Prometheus提供资源监控
    Dashboard提供GUI
    Federation提供跨可用区的集群


K8S基础知识-K8S的架构_第2张图片
图片 - Kuberentes架构

更抽象一点的架构图

K8S架构图

K8S基础知识-K8S的架构_第3张图片
图片 - kubernetes整体架构示意图

K8S Master架构

etcd保存了整个集群的状态;
apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;
controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;
scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;

K8S基础知识-K8S的架构_第4张图片
K8S Master架构

Node架构

K8S基础知识-K8S的架构_第5张图片
kubernetes node架构示意图

K8S的分层设计理念

Kubernetes设计理念和功能类似Linux的分层架构,如下图

K8S基础知识-K8S的架构_第6张图片
分层架构示意图

核心层:Kubernetes最核心的功能,对外提供API构建高层的应用,对内提供插件式应用执行环境
应用层:部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服务发现、DNS解析等)
管理层:系统度量(如基础设施、容器和网络的度量),自动化(如自动扩展、动态Provision等)以及策略管理(RBAC、Quota、PSP、NetworkPolicy等)
接口层:kubectl命令行工具、客户端SDK以及集群联邦
生态系统:在接口层之上的庞大容器集群管理调度的生态系统,可以划分为两个范畴:
    Kubernetes外部:日志、监控、配置管理、CI、CD、Workflow、FaaS、OTS应用、ChatOps等
    Kubernetes内部:CRI、CNI、CVI、镜像仓库、Cloud Provider、集群自身的配置和管理等

你可能感兴趣的:(K8S基础知识-K8S的架构)