Kubernetes详解(二)——Kubernetes结构与资源对象

今天继续给大家介绍Linux运维相关知识,本文主要内容是Kubernetes结构与资源对象。

一、Kubernetes结构

Kubernetes可以将多个物理服务器或者是虚拟机组成一个Kubernetes集群,其中一台设备(或者是做MHA的一组设备)作为Master,负责管理和控制整个集群。其他的设备位Node,负责接收Master的控制,对外提供服务。
Master是Kubernetes集群的网关和中枢,负责接收管理员的指令,跟踪其他Node结点的状态,对Node结点进行负载均衡,以及集群中各个组件和资源对象的通信。为了保证Master的稳定性,我们通常使用MHA高可用技术将多个主机部署成Master。Master负责将所管理的Node资源统一管理,形成一个宏观上的性能非常强大的服务器,当有Kubernetes的工作指令时,由Master负责将其分配到所属的一个Node结点上运行。
Node是Kubernetes的工作结点,在理论上,Node可以是任何一种具有运算能力的设备。Node可以根据Master的指令创建或者删除Pod对象(Kubernetes集群中最小的工作单位,Pod中含有一个或者多个容器)。
Kubernetes集群结构如下:
在这里插入图片描述

二、Kubernetes资源对象

以上我们对Kubernetes集群结点的Master和Node结构进行了深入的讲解。但是Kubernetes集群在运行时,还会抽象出很多的资源对象。下面,我就对这些资源对象进行详细介绍。

(一)Pod

Kubernetes不能直接控制容器,其最小调度单位就是Pod。Pod由一个或者多个容器组成,这些容器之间共享存储和网络,但是在进程和文件系统上是隔离的,并且可以通过本地环回地址进行通信。Pod内的容器协同工作,对外提供服务。通常,我们会在一个Pod中部署一台容器,但是有时当一个容器无法完成既定工作时,我们会部署一个主容器和其他的辅助性容器。例如,我们要部署一个LAMP结点,那么就可以部署Apache和MySQL两台容器。

(二)标签

Kubernetes支持对抽象的资源对象,如Pod、服务等添加标签。标签是一个键值对类型的数据,用于表示该对象的特殊含义。需要特别注意的是,标签仅对于用户有用,并不会对Kubernetes集群和资源对象的运行造成特定的影响。标签可以在资源对象创建时就附加,也可以在资源对象创建后再添加。Kubernetes允许一个资源对象有多个标签,也允许多个资源对象有相同的标签。

(三)标签选择器

标签选择器就是根据资源对象的标签进行筛选的机制。我们通常会通过标签选择器来选择我们需要的资源对象进行指定的操作。

(四)Pod控制器

一般情况下,我们会借助Pod控制器(Controller)来控制和管理Pod,而不会手动的管理Pod。Pod控制器是指Kubernetes上的一系列用于Pod生命周期管理的对象,包括ReplicationController、ReplicaSet、Deployment、StatefulSet、Job等。借助于Pod控制器,我们只需要声明期望Pod所处的状态,Pod控制器就会在Pod的全生命周期中对Pod对象进行管理和控制。

(五)服务

服务(service)是在Pod之上的资源抽象,它可以为一组Pod对象提供一个固定的访问IP。若Kubernetes集群存在DNS附件,那么Service资源在被创建时会被自动分配一个DNS以便客户访问。客户端对Pod的访问请求,必须要经过Service,因此可以把Service看做是一个四层的代理。Service内置实现了负载均衡功能,当后方有多个Pod时,会把客户端的访问请求平均的分配到各个Pod上。

(六)存储卷

存储卷(Volumn)是独立于容器文件系统以外的存储空间,用于扩展容器的存储空间并提供持久化存储能力。Kubernetes集群中的存储卷可以分为临时卷、本地卷和网络卷。临时卷和本地卷一般都位于Node结点上,这样一旦Pod被调度至其他的Node,就无法访问该Node结点上的存储资源,因此临时卷和本地卷一般用作临时存储,持久化的存储一般位于网络卷上。

(七)名称和名称空间

名称(Name)是Kubernetes集群中资源对象的标识符,名称空间(NameSpace)是Name的作用域,并且在一个名称空间内的所有对象必须具有不同的名称。名称空间在Kubernetes集群中主要用于进行逻辑分组,实现租户和项目的隔离。在未特殊指定的情况下,Kubernetes集群中的所有资源都属于default这个名称空间。

(八)注释

注释(Annotation),类似于标签,也是附着在资源对象上的一种键值对类型的数据。相比于标签,注释拥有更大的数据容量,但是不能被标签选择器挑选,也没有类似的挑选机制,其主要目的是方便使用者的阅读和查找。

(九)Ingress

Ingress与Service类似,也可以对外提供一个访问IP,是实现外部访问的另一种方式。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

猜你喜欢

转载自blog.csdn.net/weixin_40228200/article/details/124253405