Kubernetes之简介(一)

Docker和微服务

基于Docker技术,开发者可以自由的将应用程序和基础镜像打包起来,发布到任何运行流行Linux系统的机器上执行,契合了容器“一次构建,到处运行”的核心理念。

Docker的诞生,促进了微服务架构的快速发展,但是基于Docker的微服务架构仍然面临如何实现Docker集群的系统管理、容器的自动部署、编排、维护和扩展等问题。针对此,目前Docker官方提供的Swarm、Apache提供的Mesos、Google提供的Kubernetes都可以解决上述的问题,而生产级别的容器集群平台使用较多的仍是Kubernetes。

Kubernetes 简介

Kubernetes是Google 2014年推出的开源容器集群管理系统,基于Docker构建一个容器调度服务,为容器化的应用提供资源调度、部署运行、均衡容灾、服务注册、扩容缩容等功能,本质上可看作是基于容器技术的mini-PaaS平台,提取了PaaS中的业务编排和管理模块而形成的。

Kubernetes自开源以来,受到了众多公司和容器爱好者的关注,是目前最优秀的容器集群管理的开源醒目之一。已有Microsoft、IBM 、Mesosphere 、RedHat、Docker、CoreOS等公司加入到Kubernetes社区。

Kubernetes前身是在Google内部已经应用了十几年的Borg系统,积累了大量来自生成环境的宝贵实践。正是因为这些积累,作为一套分布式应用容器集群系统,Kubernetes拥有明显的技术优势:
- 优秀的API设计,架构简洁高效,组件个数少,彼此之间通过接口调用;
- 基于微服务模式的多层资源抽象,兼顾灵活性和可操作性。其提出的Pod模型被很多平台参考借鉴;
- 可拓展性好,模块化容易替换,具有很强的伸缩能力;
- 自动化程度高,用户通过模板申明服务后,生命周期都是自动化管理;
- 支持多种部署环境,包括裸机部署、虚拟机、常见的云平台等;
- 支持丰富的运维工具;
- 自带控制台、客户端命令等工具,方便用户直接通过命令与集群交互;

Kubernetes集群架构

Kubernetes集群由其提供的一组节点组成,这些节点提供容器资源池供用户使用。管理组件主要包括管理(Master)组件和节点(Node)组件。

Master组件提供所有集群管理的相关操作,如调度,监控,对资源的操作等。包括kube-apiserver、kube-scheduler、kube-controller-manager、kube-ui以及Etcd、DNS等支持组件。

Node组件是Kubernetes中的实际工作的计算实例,节点可以是虚拟机、物理服务器或者云服务器,在创建Kubernetes集群时,需要预装一些必要的软件来响应Master的管理,主要包括kubelet、kubeproxy等。

kubernetes架构

  • kube-apiserver:集群核心,API接口、集群各个组件通信的中枢;集群安全控制;
  • etcd:集群的数据中心;
  • kube-scheduler:集群Pod的调度中心;
  • kube-controller-manager:集群状态管理器,当集群状态与期望不同时,KCM会努力让集群恢复期望状态,例如:当一个pod死掉,KCM会努力新建一个pod来恢复对应replicas set期望的状态;
  • kubelet:负责与节点上的Docker守护进程通信;
  • kubeproxy: 实现了Service的代理以及软件模式的负载均衡,主要是为节点间的通信进行服务。

参考

猜你喜欢

转载自blog.csdn.net/guoxiaojie_415/article/details/80114692