一个K8S集群由两部分构成 master节点和node节点。

master节点主要负责集群的控制,对pod进行调度,已经令牌管理等等功能。

node节点主要是负责干活,启动容器、管理容器。

master节点和node节点一般不要部署在一台机器上。

上面这个架构图,举例是一个master节点和2个node节点。但实际生产上,从高可用考虑,是需要部署多个master节点的。

将这张图抽象一下,大约是这个样子

master节点中又有很多组件

主要的是:

Api Server:对外暴露K8S的api接口,是外界进行资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;

scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;就是监视新创建的 Pod,如果没有分配节点,就选择一个节点供他们运行,这就是pod的调度

controller manager负责维护集群的状态,比如故障检测、自动扩展、滚动更新等,它们是处理集群中常规任务的后台线程

etcd:kubernetes的后端数据库,k/v方式存储,所有的k8s集群数据都存放在此处。保存了整个集群的状态

其中有kube-scheduler和kube-controller-manager两个组件是有leader选举的,这个选举机制是k8s对于这两个组件的高可用保障。

apiserver是可以水平扩展的。

Node节点的组件:

kubelet负责维护容器的生命周期,同时也负责Volume(CSI)和网络(CNI)的管理;

kube-proxy负责为Service提供cluster内部的服务发现和负载均衡;

fluentd 是一个守护进程,它有助于提供集群层面日志 集群层面的日志

再来一张综合起来的图:

解释图中的几个词:

CNI、CRI和CSI都是K8S的开放接口

Kubernetes作为云原生应用的基础调度平台,相当于云原生的操作系统,为了便于系统的扩展,Kubernetes中开放的以下接口,可以分别对接不同的后端,来实现自己的业务逻辑:

CRI(Container Runtime Interface):容器运行时接口,提供计算资源CNI(Container Network Interface):容器网络接口,提供网络资源CSI(Container Storage Interface):容器存储接口,提供存储资源

这几个属于进阶内容,新手先不用管。

另外附一个参考高可用部署架构:

在每台node节点上安装nginx,nginx通过内部的负载均衡将node节点上需要通过访问master,kube-apiserver组件的请求,反代到两台k8s-master节点上,这样就可以实现master节点的高可用,当任意一台master节点宕机后,也可以通过nginx负载均衡放文档另一个master节点上


//来自百家号:IT有意思

k8s系统架构图(二)相关推荐

  1. 系统架构图编写(概要设计)

    系统架构图编写(概要设计) 应用架构图.技术架构图.业务架构图定义以及到底怎么画好架构图? 常见的数据库架构设计方案? 业务架构的定义.特性和方法 架构图之间的关系 业务架构图 业务架构,是IT架构的 ...

  2. 重走Android路 之 Android系统架构图以及开发工具了解

    LZ-Says:热腾腾的一天那,貌似今天帝都达到了高温,热腾腾,我滴天...各位老铁注意防暑,多喝水~~~ 前言 昨天更新了一篇启程文,地址如下: 重走Android路 之 今日正式启程:https: ...

  3. android系统架构图及各层介绍

    此技术文档主要是从基础了解Android系统架构,便于对以后开发形成一些基本应用架构. Android的系统架构采用了分层架构的思想,如图1所示.从上层到底层共包括四层,分别是应用程序程序层.应用框架 ...

  4. Android系统架构图及简单的系统架构介绍

    2019独角兽企业重金招聘Python工程师标准>>> ndroid的系统架构和其操作系统一样,采用了分层的架构.从架构图看,android分为四个层,从高层到低层分别是应用程序层. ...

  5. 各种系统架构图及其简介

    各种系统架构图及其简介 )z @3vvG,W5p'[n0 转载请保留出处,不胜人生一场醉汇总. 以下文字和架构图均在本人相关系统设计和架构方案中有所应用. 2ht4T[i}6_0 原文出处:http: ...

  6. 一个关于“系统架构图怎么画?”的问题

    值得一看,请移步(没必要重复张贴了): 软件工程之系统架构图和系统架构描述 系统架构图怎么画?

  7. 第5篇:K8S功能架构图 以及全景工作流程图 (初识K8S)

    本篇博客涉及到的问题: 1.容器需要分为两个部分,这两个部分指的是什么? 本博客已解答 2.K8S的诞生源于"Brog系统"的设计和经验,Brog系统的什么特点是K8S需要继承的? ...

  8. 系统架构图怎么画_基于ROS的移动机器人上层系统架构分析

    看过网上不少博客,介绍ROS系统架构的,基本上都是在介绍ROS自身系统架构,很少有介绍特定机器人的系统架构的.个人觉得,入门一个系统,首先需要从整体开始把握,而不必在意细节,整体把握好了,细节自然水到 ...

  9. hbase系统架构图以及各部分的功能作用,物理存储,HBase寻址机制,读写过程,Regin管理,Master工作机制

    1.1 hbase内部原理 1.1.1 系统架构 Client 1 包含访问hbase的接口,client维护着一些cache来加快对hbase的访问,比如regione的位置信息. Zookeepe ...

最新文章

  1. AtomicInteger源码分析——基于CAS的乐观锁实现
  2. 如何选择合适的数据库,让游戏更高效可用
  3. Matplotlib 可视化之箭头与标注的高级应用
  4. mysql 字符串类型
  5. 应用程序创建自己的奔溃转储(crash dump)文件
  6. Apache不记录制定文件类型日志
  7. python中math库_Python的math库、random库实际应用
  8. 第二十三节: EF性能篇(三)之基于开源组件 Z.EntityFrameWork.Plus.EF6解决EF性能问题
  9. android 获取已安装 错误代码,android获取手机已经安装的app信息
  10. mongoose数据查询or、and、where等用法
  11. Maven 插件开发
  12. iOS “项目名” has conflicting provisioning settings.
  13. flex布局——回顾
  14. C++学习笔记——opencv2模块(图像处理)
  15. 老友记第一季自学笔记01
  16. 「Mac小技巧」教你如何解决WiFi的国家地区代码冲突
  17. 配天机器人——使用笔记
  18. 白话 贝叶斯公式_[白话解析] 深入浅出朴素贝叶斯模型原理及应用
  19. 国学大师 master of Chinese culture
  20. C++ VS项目属性的一些配置项的总结

热门文章

  1. 十二. python面向对象主动调用其他类
  2. iOS开发UI篇—核心动画(基础动画)
  3. Django开发social-auth-app-django 第三方登陆
  4. 小程序作用域与模块化
  5. 工信部:加强中欧在5G、物联网等领域合作
  6. 【POJ 3614 Sunscreen】贪心 优先级队列
  7. 向右挪一个键位使密码好记又安全
  8. 300php是多少人民币,GV300S登陆欧洲市场 售价约为3.82万人民币
  9. Java基本数据类型的自动转换_彻底理解Java中的基本数据类型转换(自动、强制、提升)...
  10. 字节跳动简历冷却期_【字节跳动招聘】简历这样写,才不会被秒拒