毕业论文
您现在的位置: 自动化 >> 自动化介绍 >> 正文 >> 正文

Kubernetes核心原理和搭建

来源:自动化 时间:2023/3/29
治疗白癜风医院 http://pf.39.net/bdfyy/

1.引言

在过去,我们在进行程序部署的时候,是直接将环境和程序统一配置部署到主机上,但是这样做容易造成程序与程序之间的混淆,所以为了处理这种问题,我们可以搭建一台不可变的虚拟机镜像,将环境和程序配置部署到虚拟机镜像中,但是虚拟机镜像部署存在体量过于庞大并且不可移动的问题,所以容器技术应运而生,容器技术是基于操作系统级别的虚拟化技术,各个容器与宿主机是隔离的,各个容器之间也是是隔离的,它比虚拟机镜像更容易搭建,并且可以很方便在不同的主机上移动。但是随着分布式、集群等技术在实际应用中越来越多,在实际的生产环境中,我们可能会涉及到多个容器,而这些容器可能会跨越多个服务器主机进行部署,所以一个基于容器技术的分布式架构解决方案应用而生,它就是Kubernetes。

2.Kubernetes的概念

Kubernetes(k8s)是一个基于容器技术的的分布式架构解决方案,是Google开源的容器集群管理系统,Google内部称为Borg,主要用于自动部署、扩展和管理容器化的应用程序,是以Docer为基础的分布式系统架构。Kubernetes可以对分布式系统进行完美的支撑,它具备完善的集群控制能力,内建有智能的负载均衡器,拥有强大的故障发现和自我修复能力。同时还针对开发、部署测试、运维监控等提供了完善的管理工具。

Kubernetes的核心思想是:一切以服务为中心,根据这一核心思想,Kubernetes可以让在其上构建的系统独立运行在物理机、虚拟机群或者云上,所以,Service(服务)是Kubernetes进行分布式集群构建的核心,必须拥有如下关键特征:

拥有一个唯一指定的名称。拥有一个虚拟IP和端口。能够提供某种远程服务能力。可以被映射到提供这种远程服务能力的一组容器应用上。3.Kubernetes的术语

3.1Master

Kubernetes的集群控制节点,负责整个集群的管理和控制,拥有一个etcd服务,用来保存所有资源对象的数据,我们执行的所有控制命令会发给他,他负责具体的执行过程,Master节点通常会独占一个服务器,在其上会运行以上一组关键的进程:

KubernetesAPIServer:提供HttpRest接口的关键服务进程,是Kubernetes中增、删、改、查等操作的唯一入口,是集群控制的入口进程。KubernetesControllerManager:Kubernetes中所有资源对象的自动化控制中心。KubernetesScheduler:负责资源调度的进程。3.2Node

Kubernetes集群中的其他机器被称为Node节点,Node节点可以是一台物理主机,也可以是一台虚拟机,每个Node节点会被Master节点分配一些负载,所以Node节点是Kubernetes集群中工作负载节点,当某个Node节点宕机时,工作负载会被Master自动转移到其他节点。Node节点之上会运行一组关键进程:

kubelet:负责Pod对应容器的创建,启动、停止等任务。kube-proxy:实现KubernetesService通讯与负载均衡机制的重要组件。DockerEngine:Docker引擎,负责容器的创建和管理3.3Pod

Pod是Kurbernetes进行创建、调度和管理的最小单位,Pod运行在Node节点之上,其中包含多个业务容器,这些业务容器之间共享网络命名空间、Ip地址、端口,可以通过localhost进行通讯。Pod有两种类型:普通Pod和静态Pod。

3.4ReplicationController

Kurbernetes用来管理和保证集群中拥有的Pod。

4.Kubernetes的架构

Kubernetes的一切都是基于分布式的,下面这张图就是Kubernetes的架构图

通过这张架构图我们发现Kurbernetes主要由以下几个核心组件组成:

Etcd:保存整个集群的状态。APIServer:提供认证、授权、访问控制、API注册和发现等机制,是资源操作的唯一入口。KurbernetesController:负责维护集群的状态。Scheduler:负责资源的调度。kubelet:负责维护容器的生命周期,同时管理Volume和网络。Container:负责镜像管理以及Pod和容器的真正运行。kube-proxy:负责为Service提供cluster内部的服务发现和负载均衡。5.Kubernetes的搭建

5.1准备工作

因为Kubernetes的一切都是基于分布式的,那么,要想搭建Kubernetes就需要准备多台服务器主机,因为条件有限,这里我采用搭建多台虚拟机系统的方式进行,所以需要将虚拟机和镜像系统准备好。

虚拟机:这里的虚拟机我采用的是VMware,当然也可以采用VirtualBox,VMware下载地址如下:

转载请注明:http://www.0431gb208.com/sjszlfa/3982.html

  • 上一篇文章:
  • 下一篇文章: 没有了