K8S分享之——Kubernetes架构介绍
  

不懂就问 3974

{{ttag.title}}
本帖最后由 不懂就问 于 2020-4-29 10:29 编辑

PS:本文图片来自Kubernetes中文社区官网和CSDN论坛。

一、前言
关注我的小伙伴肯定知道,我前面几个分享介绍了容器的基本原理与使用,了解到容器的很多优势。但是每个技术都有优劣,如果想要将Docker应用于具体的业务实现,是存在困难的——编排、管理和调度等各个方面,都存在很大的障碍。我们需要一套管理系统,对容器进行更高级更灵活的管理。而Kubernetes正是目前最流行的容器编排管理系统,今天我们将介绍k8s的架构。

二、k8s概述
Kubernetes是一个开源容器调度平台,可以管理各种不同的底层容器。熟悉OpenStack的肯定知道,OpenStack通过管理底层大量的虚拟化节点构成一个庞大的集群,提供云服务。而k8s通过管理底层的容器节点,自动化应用容器的部署、扩展和操作,提供以容器为中心的基础架构。
三、k8s架构
kubernetes集群包含master节点和worker节点,每个节点可以是一台物理机(物理部署),也可以是一台虚拟机(虚拟化部署)。

master节点(主节点也称控制节点):提供集群控制,管理整个集群,例如集群资源调度、提供API接口等。通常在master节点上不运行用户容器(不在master节点上运行业务)。
master节点上有四个重要的组件:Kube-apiserver、Etcd、kube-controller-manager、kube-scheduler。
  • Kube-apiserver:对外暴露Kubernetes API,是 Kubernetes 前端控制层,负责API服务。它被设计为水平扩展,可以通过部署更多实例来缩放。
  • Etcd:Etcd是一种k-v存储仓库,可用于服务发现程序,是Kubernetes集群中的重要组件,记录了集群中各种资源对象信息,它除了具备状态存储的功能,还有事件监听和订阅功能,实际Master上核心组件的通信,并不是互相调用 API 来完成,而是把状态写入 ETCD,其他组件通过监听 ETCD 的状态的的变化(类似订阅消息),然后做后续的处理,然后再一次把更新的数据写入ETCD
  • kube-controller-manager:运行控制器,负责整个集群的容器编排服务。
  • kube-scheduler:主要是资源监控与调度功能,监视每个节点的资源情况,在新增POD时调度最佳节点来创建POD。



worker节点:是实际承载用户容器的节点,主要包括Docker、kubelet、kube-proxy、Fluentd、Pod等组件。
  • Docker:容器引擎,用于创建容器。
  • kubelet:主要负责监视调度到该节点上的Pod,包括创建、修改、监控、删除等。kubelet可以调用网络插件和存储插件为容器配置网络和持久化存储。这两个插件与kubelet交互的接口,分别是CNI(container network interface)和CSI(container storage interface)
  • kube-proxy:管理service的访问入口,为Pod提供代理,包括集群内pod到service的访问和集群外访问service。
  • Fluentd:主要负责节点的日志收集、存储与查询。
  • Pod:是Kubernetes最基本的操作单元。一个Pod代表着集群中运行的一个进程,它内部封装了一个或多个紧密相关的容器。



四、典型创建服务工作流
我们以创建一个nginx服务为例:

master节点:
通过kubectl命令行创建nginx服务,kubectl会调用API Server往ETCD里面写入一个Deployment对象。
Controller-Manager监听到有新的Deployment对象被写入,获取对象信息后,根据对象信息做任务调度,创建出对应的Pod信息。
Scheduler监听到有新的Pod被创建,读取到Pod对象信息,根据集群状态将Pod调度到某一节点上,然后更新Pod信息(在信息中加入了节点绑定配置)
worker节点:
Kubelet服务监听到当前节点被指定了新的Pod,就根据对象信息实际的运行Pod
Pod的网络访问由节点的Kube-proxy服务进行Iptables的转发规则设定





打赏鼓励作者,期待更多好文!

打赏
1人已打赏

静态路由 发表于 2020-4-29 14:47
  
学习了,慢慢转k8s和OpenStack运维
新手031815 发表于 2020-4-30 09:24
  
学习了,慢慢消化下
新手741261 发表于 2020-4-30 09:36
  
来交流讨论下
新手770264 发表于 2020-4-30 09:44
  
写的内容很不错
新手780102 发表于 2020-4-30 10:11
  
刚好需要这类型的资料
good_Knight 发表于 2020-5-5 17:41
  
楼主讲解了k8s的框架,对比虚拟机的openstack讲解,通俗易懂,并结合一个应用的例子,谢谢分享
gqce 发表于 2020-5-5 21:51
  
感谢分享
林明纲_福州办 发表于 2020-5-13 13:24
  
特意翻了一下楼主之前的帖子,写的比较细致,从容器的基础科普知识,到目前主流的Kubernetes架构介绍等。对容器有兴趣的童鞋可以把楼主之前的帖子翻出来读一下。
71415 发表于 2020-5-17 08:18
  
豆腐干风格个大概豆腐干
发表新帖
热门标签
全部标签>
每日一问
技术盲盒
技术笔记
技术咨询
干货满满
功能体验
产品连连看
新版本体验
GIF动图学习
2023技术争霸赛专题
自助服务平台操作指引
标准化排查
运维工具
通用技术
秒懂零信任
信服课堂视频
技术晨报
用户认证
安装部署配置
每日一记
安全攻防
SDP百科
设备维护
深信服技术支持平台
社区帮助指南
答题自测
玩转零信任
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
上网策略
测试报告
日志审计
问题分析处理
流量管理
云计算知识
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选

本版达人

新手89785...

本周建议达人

YangZhe...

本周分享达人