【云原生 · Kubernetes】Kubernetes简介及基本组件
1.Kubernetes简介
Kubernetes是Google开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,如图1.3所示。利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能总结如下:
- 使用Docker对应用程序包装(package)、实例化(instantiate)、运行(run)。
- 以集群的方式运行、管理跨机器的容器。
- 解决Docker跨机器容器之间的通讯问题。
- 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 ,期待你的关注~
最新文章
- javascript模块化编程(三):require.js用法
- <;jsp:include page=";"; />;路径
- html 定位问题
- Prism&;MEF构建开发框架 (三)
- Jira中Activity Stream中显示Localhost不能正常访问的处理
- sql server 与oracle数据互导的一种思路--sql server链接服务器
- 关于js判断鼠标移入元素的方向——上下左右
- 使用netbeans 搭建 JSF+SPRING 框架
- VTune使用amplxe-cl进行Hardware Event-based Sampling Analysis 0分析
- VS中的快捷键快速格式化代码,使好看,整齐
- ubuntu server 11.10 mysql 自动备份脚本
- 【CSS Cookbook】笔记摘要(一)
- selenium中的xpath定位
- SpringBoot2.0之七 实现页面和后台代码的热部署
- mysql练习----The JOIN operation
- 【转】cJSON 源码阅读笔记
- Java svnkit check update commit
- Web form ajax请求
- 学以致用四----centos7.2 安装python3.6
- SJA1000 CAN驱动程序演示实验
热门文章
- 记一次 .NET 某数控机床控制程序 卡死分析
- Docker与Containerd使用区别
- cAdvisor容器监控规则
- 从nuxt开始的SEO之路
- Docker搭建kafka及监控
- 痞子衡嵌入式:一个关于Segger J-Flash在Micron Flash固定区域下载校验失败的故事(SR寄存器BP[x:0]位)
- 「国产系统」Tubian 0.1,兼容Windows和Android的GNU/Linux系统!
- sql中更换函数REPLACE
- 洛谷P1638 逛画展 (尺取法)
- Containerd-1.6.5 镜像容器操作