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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 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

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
1月前
|
JSON 运维 Kubernetes
|
3月前
|
存储 Kubernetes 数据中心
在K8S中,同⼀个Pod内不同容器哪些资源是共用的,哪些资源是隔离的?
在K8S中,同⼀个Pod内不同容器哪些资源是共用的,哪些资源是隔离的?
|
3月前
|
边缘计算 人工智能 Kubernetes
边缘计算问题之理解 Kubernetes 节点资源的四层分配结构如何解决
边缘计算问题之理解 Kubernetes 节点资源的四层分配结构如何解决
32 1
|
3月前
|
存储 Kubernetes API
|
3月前
|
Kubernetes Linux 调度
在k8S中,Pod如何实现对节点的资源控制?
在k8S中,Pod如何实现对节点的资源控制?
|
3月前
|
Kubernetes 监控 API
在K8S中,RS资源如何实现升级和回滚?
在K8S中,RS资源如何实现升级和回滚?
|
3月前
|
Kubernetes 网络协议 应用服务中间件
在K8S中,SVC资源是否支持在K8S集群外部访问?
在K8S中,SVC资源是否支持在K8S集群外部访问?
|
3月前
|
Kubernetes Cloud Native 应用服务中间件
Kubernetes 自动伸缩策略:优化资源利用率
【8月更文第29天】在现代云原生环境中,应用的流量往往具有不可预测性。为了应对这种变化,Kubernetes 提供了多种自动伸缩机制来动态调整应用实例的数量和每个实例分配的资源。本文将深入探讨两种主要的自动伸缩工具:水平 Pod 自动伸缩器 (HPA) 和垂直 Pod 伸缩器 (VPA),并提供实际的应用示例。
99 0
|
3月前
|
Prometheus Kubernetes 监控
在K8S中,DaemonSet类型的资源特性有哪些?
在K8S中,DaemonSet类型的资源特性有哪些?
|
3月前
|
Kubernetes 调度 数据中心
在K8S中,Pod中关于资源有request和limit两个字段?这么设计的原因是什么?
在K8S中,Pod中关于资源有request和limit两个字段?这么设计的原因是什么?

推荐镜像

更多