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

简介: 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
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_40228200/article/details/124253405

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
2天前
|
Kubernetes API 调度
Kubernetes详解(十五)——Pod对象创建过程
Kubernetes详解(十五)——Pod对象创建过程
14 4
|
2天前
|
Kubernetes API 调度
Kubernetes详解(十四)——Pod对象生命周期
Kubernetes详解(十四)——Pod对象生命周期
11 3
|
3天前
|
运维 Kubernetes Shell
Kubernetes详解(十二)——节点选择器与资源注解
Kubernetes详解(十二)——节点选择器与资源注解
21 2
|
3天前
|
运维 Kubernetes Linux
Kubernetes详解(十)——Pod对象高级控制命令
Kubernetes详解(十)——Pod对象高级控制命令
12 0
|
4天前
|
运维 Kubernetes Linux
Kubernetes详解(九)——资源配置清单创建Pod实战
Kubernetes详解(九)——资源配置清单创建Pod实战
19 2
|
4天前
|
JSON Kubernetes API
Kubernetes详解(八)——Kubernetes资源配置清单
Kubernetes详解(八)——Kubernetes资源配置清单
14 2
|
4天前
|
运维 Kubernetes Linux
Kubernetes详解(七)——Service对象部署和应用
Kubernetes详解(七)——Service对象部署和应用
11 3
|
4天前
|
Kubernetes 应用服务中间件 nginx
Kubernetes详解(六)——Pod对象部署和应用
在Kubernetes系列中,本文聚焦Pod对象的部署和管理。首先,通过`kubectl run`命令创建Pod,如`kubectl run pod-test --image=nginx:1.12 --port=80 --replicas=1`。接着,使用`kubectl get deployment`或`kubectl get pods`查看Pod信息,添加`-o wide`参数获取详细详情。然后,利用Pod的IP地址进行访问。最后,用`kubectl delete pods [Pod名]`删除Pod,但因Controller控制器,删除后Pod可能自动重建。了解更多细节,请参阅原文链接。
14 5
|
4天前
|
存储 Kubernetes 调度
Kubernetes详解(五)——Kubernetes核心对象
Kubernetes详解(五)——Kubernetes核心对象
17 4
|
4天前
|
Kubernetes 监控 调度
Kubernetes(K8s)与虚拟GPU(vGPU)协同:实现GPU资源的高效管理与利用
本文探讨了如何使用Kubernetes和虚拟GPU(vGPU)实现异构GPU的协同调度。Kubernetes是一个容器编排平台,通过设备插件、资源规格、调度器扩展和节点标签实现GPU资源管理。vGPU技术允许物理GPU资源在多个虚拟机或容器中共享。文章详细介绍了vGPU的部署配置步骤,并提出了GPU资源调度、负载均衡和监控调优的方法。强调虚拟GPU的性能取决于硬件和驱动支持,合理配置能提供高性能计算环境。参考文献包括Kubernetes和NVIDIA官方文档及相关研究论文。