1.Kubernetes简介

Kubernetes是Google开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,如图1.3所示。利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能总结如下:

  1. 使用Docker对应用程序包装(package)、实例化(instantiate)、运行(run)。
  2. 以集群的方式运行、管理跨机器的容器。
  3. 解决Docker跨机器容器之间的通讯问题。
  4. Kubernetes的自我修复机制使得容器集群总是运行在用户期望的状态。
    图1.3 Kubernetes的功能结构

2.Kubernetes集群平台组成结构

Kubernetes总体包含两种角色,一个是Master节点,负责集群调度、对外接口、访问控制、对象的生命周期维护等工作;另一个是Node节点,负责维护容器的生命周期,例如创建、删除、停止Docker容器,负责容器的服务抽象和负载均衡等工作。
其中Master节点上,运行着三个核心组件:API Server, Scheduler, Controller Mananger。
Node节点上运行两个核心组件: Kubelet, Kube-Proxy。API Server提供Kubernetes集群访问的统一接口,Scheduler, Controller Manager, Kubelet, Kube-Proxy等组件都通过API Server进行通信,API Server将Pod, Service, Replication Controller, Daemonset等对象存储在ETCD集群中。
ETCD是CoreOS开发的高效、稳定的强一致性Key-Value数据库,ETCD本身可以搭建成集群对外服务,它负责存储Kubernetes所有对象的生命周期,是Kubernetes的最核心的组件。各个组件之间的关系详情如图1-4所示。

下面先大概介绍一下Kubernetes的核心组件的功能:

API Server: 提供了资源对象的唯一操作入口,其他所有的组件都必须通过它提供的API来操作资源对象。它以RESTful风格的API对外提供接口。所有Kubernetes资源对象的生命周期维护都是通过调用API Server的接口来完成,例如,用户通过kubectl创建一个Pod,即是通过调用API Server的接口创建一个Pod对象,并储存在ETCD集群中。

Controller Manager: 集群内部的管理控制中心,主要目的是实现Kubernetes集群的故障检测和自动恢复等工作。它包含两个核心组件:Node Controller和Replication Controller。其中Node Controller负责计算节点的加入和退出,可以通过Node Controller实现计算节点的扩容和缩容。Replication Controller用于Kubernetes资源对象RC的管理,应用的扩容、缩容以及滚动升级都是有Replication Controller来实现。

Scheduler: 集群中的调度器,负责Pod在集群的中的调度和分配。

Kubelet: 负责本Node节点上的Pod的创建、修改、监控、删除等Pod的全生命周期管理,Kubelet实时向API Server发送所在计算节点(Node)的信息。

Kube-Proxy: 实现Service的抽象,为一组Pod抽象的服务(Service)提供统一接口并提供负载均衡功能。


图1.4 kubernetes集群服务各组件关系

期待下次的分享,别忘了三连支持博主呀~
我是 念舒_C.ying ,期待你的关注~

最新文章

  1. javascript模块化编程(三):require.js用法
  2. <jsp:include page="" />路径
  3. html 定位问题
  4. Prism&MEF构建开发框架 (三)
  5. Jira中Activity Stream中显示Localhost不能正常访问的处理
  6. sql server 与oracle数据互导的一种思路--sql server链接服务器
  7. 关于js判断鼠标移入元素的方向——上下左右
  8. 使用netbeans 搭建 JSF+SPRING 框架
  9. VTune使用amplxe-cl进行Hardware Event-based Sampling Analysis 0分析
  10. VS中的快捷键快速格式化代码,使好看,整齐
  11. ubuntu server 11.10 mysql 自动备份脚本
  12. 【CSS Cookbook】笔记摘要(一)
  13. selenium中的xpath定位
  14. SpringBoot2.0之七 实现页面和后台代码的热部署
  15. mysql练习----The JOIN operation
  16. 【转】cJSON 源码阅读笔记
  17. Java svnkit check update commit
  18. Web form ajax请求
  19. 学以致用四----centos7.2 安装python3.6
  20. SJA1000 CAN驱动程序演示实验

热门文章

  1. 记一次 .NET 某数控机床控制程序 卡死分析
  2. Docker与Containerd使用区别
  3. cAdvisor容器监控规则
  4. 从nuxt开始的SEO之路
  5. Docker搭建kafka及监控
  6. 痞子衡嵌入式:一个关于Segger J-Flash在Micron Flash固定区域下载校验失败的故事(SR寄存器BP[x:0]位)
  7. 「国产系统」Tubian 0.1,兼容Windows和Android的GNU/Linux系统!
  8. sql中更换函数REPLACE
  9. 洛谷P1638 逛画展 (尺取法)
  10. Containerd-1.6.5 镜像容器操作