k8s 架构浅析

版权声明:转载请注明出处 JmilkFan_范桂飓:http://blog.csdn.net/jmilk https://blog.csdn.net/Jmilk/article/details/85028828

目录

Kubernetes 的电梯间演讲

Kubernetes 是一个 面向应用 的容器集群部署、管理及编排系统,旨在为最终用户屏蔽物理/虚拟计算、网络、存储基础设施的复杂度,关注以应用为核心、以容器为原语的自动化运营平台。

在这里插入图片描述

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

Kubernetes 的层级对象

在这里插入图片描述

Cluster: 是一个被 k8s 协调的高可用集群,作为 k8s 集群的根操作对象,将多台计算节点(Master/Node)连接成一个工作整体。

Master:下属于 Cluster,充当集群中的中央控制角色,负责管理、协调集群中的所有活动(e.g. scheduler app、维护 app 状态机、 弹性扩展 apps、发布 app 更新 etc.)。

Node:下属于 Cluster,作为集群中的 Worker,受 Master 指使。是 Containers 及其 runtime 引擎的允许载体。

Pod: 是一个抽象而统一的概念,屏蔽底层异构 Container Runtime 技术实现。k8s 的最小工作单元,是 Containers 的 “Container”。

Container:下属于 Pod,是真正意义上的、常规的容器。

Kubernetes 的组件架构

在这里插入图片描述

Kubernetes 是典型的中控分布式架构(Central control distributed architecture),下面分别列举 Master、Node 的组件。

Master

  • etcd:提供高可用性、严格数据一致性的非关系型数据库,具有共享配置、服务发现、分布式等特点。常被用于构建服务发现系统。

  • API Server:统一且唯一的 Cluster 北向访问接口,依靠 CA 认证体系提供身份认证、授权、鉴权等访问控制功能,统称 3A(Authentication、Authorization、Admission),是 Kubernets Security Mechanism 的门神。

  • Controller Manager:中央控制管理器,Cluster 的核心管理模块,负责整个 Cluster 的 “运”(e.g. 故障检测、弹性扩展、滚动更新,etc.)

  • Scheduler:资源调度器,按照预设的策略将 Pod 调度到目的(最佳)Node 上启动。

Node

  • kubelet:维护 Container 的生命周期,同时也负责存储(CSI)和网络(CNI)的管理。

  • kube-proxy:为 Service 提供 Cluster 内部的服务发现和负载均衡功能。

  • Container runtime:负责镜像管理以及 Pod 和 Container 的运行(CRI)。

Kubernetes 的组件通信协议/接口

在这里插入图片描述

Kubernetes 的分层架构

在这里插入图片描述

最后

一图抵万语,上文图源均来自互联网。实话说,并没有找到一张笔者满意的架构图,还是找个时间自己画一画吧。但依旧感谢这些图的原创作者们的贡献。

回到主题,Kubernets 的架构和整个部署的复杂度相较于 OpenStack 要更低,从这个角度来看好像的确为企业用户的运维成本省了不少。当然笔者对 k8s 也只是初学,做不得准。但可以肯定的是,k8s 的核心精髓在于 编排 二字,这是由 Container 的基因决定的。将 Container 当作 VM 来使用,那就是一个天大的误解了。所以每每看见市场上哪些为容器而容器,毫无编排特征的产品,笔者实在是难免感慨。

猜你喜欢

转载自blog.csdn.net/Jmilk/article/details/85028828