当前位置: 首页 > news >正文

k8s --- resource 资源

k8s --- resource 资源

  • 什么是resource
  • 如何定义一个资源
  • k8s资源分类
  • 资源的执行者 --- controller

什么是resource

在 Kubernetes 中,资源 是一个端点,它使用 Kubernetes API 来存储某种 API 对象 的集合. 也可以说k8s中一切皆资源

简单来说:

  • 资源是 Kubernetes API 中的一个实体。比如 Pod、Deployment、Service 都是资源。
  • 你通过创建、修改、删除这些资源对象来告诉 Kubernetes 你期望的集群状态。
  • 每个资源都有其特定的 结构和功能,用来描述你想要运行的应用、网络、存储等

所有 Kubernetes 资源定义和状态都持久化存储在 etcd 中

如何定义一个资源

每个 Kubernetes 资源对象通常由以下几部分组成,定义在一个 YAML 或 JSON 文件中 (大概的模版,根据具体资源类型不同):

apiVersion: v1           # ① 使用的 API 版本
kind: Pod                # ② 资源的类型
metadata:                # ③ 资源的元数据name: my-pod           #    资源名称labels:                #    标签,用于识别和分组app: my-app
spec:                    # ④ 资源的“期望状态”,核心配置containers:- name: nginximage: nginx:1.19ports:- containerPort: 80
status:                  # ⑤ 资源的“实际状态”,由 Kubernetes 自动填充

k8s资源分类

工作负载资源 — 用于管理和运行你的应用程序容器。

资源缩写作用
Podpo最小的部署单元,包含一个或多个容器。
Deploymentdeploy管理无状态应用的 Pod 副本,支持滚动更新。
StatefulSetsts管理有状态应用的 Pod,提供稳定的标识和存储。
DaemonSetds确保每个(或指定)节点上都运行一个 Pod 副本。
Jobjob创建一个或多个 Pod,并确保它们成功运行至结束。
CronJobcj基于时间表来运行 Job。
ReplicaSetrs维护一组稳定的 Pod 副本,通常由 Deployment 自动管理。

服务发现与负载均衡资源 — 用于使你的应用能够被网络发现和访问。

资源缩写作用
Servicesvc为一组 Pod 提供稳定的网络入口和负载均衡。
Ingressing管理外部 HTTP/HTTPS 流量访问集群内部服务的规则。
Endpointsep记录一个 Service 对应的所有 Pod IP 地址,通常自动生成。

配置与存储资源 — 用于管理应用配置、敏感信息和数据持久化。

资源缩写作用
ConfigMapcm用于存储非机密的配置数据,以键值对形式。
Secretsec用于存储敏感信息,如密码、令牌、密钥。
PersistentVolumepv集群中的一块网络存储资源。
PersistentVolumeClaimpvc用户对存储的请求,Pod 通过 PVC 使用 PV。
StorageClasssc定义 PV 的“类别”,支持动态创建 PV。
namespacens用来将同一个物理集群划分为多个虚拟集群的机制|

资源的执行者 — controller

  • Controller(控制器)是 Kubernetes 的“自动化运维机器人”,它们持续监控集群状态,并努力确保系统的“实际状态”与你定义的“ (资源的yaml文件)期望状态”保持一致。
  • 不是每个资源都有一个控制器,但绝大多数核心资源都由对应的控制器管理

由 Controller 管理的“主动”资源

  • 这些是 Kubernetes 生态系统中的“劳动者”。它们有生命周期,需要被创建、更新、删除,以维护某种状态。
资源控制器控制器的作用
DeploymentDeployment Controller确保指定数量的 Pod 副本在运行,并处理更新和回滚。
StatefulSetStatefulSet Controller管理有状态 Pod 的部署和扩缩容,维护其标识和存储。
DaemonSetDaemonSet Controller确保每个(或指定)节点上都运行一个 Pod 副本。
JobJob Controller确保一个或多个 Pod 成功运行至结束。
ServiceEndpoints Controller监控 Pod 的变化,并更新 Service 对应的 Endpoints 对象。
Pod由创建它的控制器管理Pod 本身通常由更高级的控制器管理 (如deployment)。Node 故障时,由对应控制器创建新 Pod。
IngressIngress Controller它负责读取 Kubernetes 集群中的 Ingress 资源规则,并据此实现一个真正的、可处理 HTTP/HTTPS 流量的负载均衡器或反向代理

无 Controller 的“被动”资源

  • 这些是 Kubernetes 生态系统中的“配置单”或“原材料”。它们本身不会“做”任何事情,只是被其他资源引用和使用。
资源原因说明
ConfigMap只是一个存储配置数据的容器。Pod使用它,但它自己不需要行动。
Secret同ConfigMap,只是用于存储敏感数据。
PersistentVolume代表一块存储资源。由管理员或StorageClass创建,等待被PVC申请。
PersistentVolumeClaim是一个存储请求。PV Controller会监听PVC并为其绑定PV,但PVC本身不执行操作。
Namespace是一个逻辑边界,本身不需要维护状态。
ServiceAccount是一个身份标识,被Pod使用,但自己不需要行动。
http://www.dtcms.com/a/568521.html

相关文章:

  • 神经网络之反射变换
  • k8s——pod详解2
  • 四层神经网络案例(含反向传播)
  • MySQL初阶学习日记(1)--- 数据库的基本操作
  • 【k8s】k8s的网络底层原理
  • 一种创新的集成学习模型:结合双通路神经网络与逻辑回归的糖尿病患病概率预测
  • 神经网络之线性变换
  • Fastlane 结合 开心上架(Appuploader)命令行版本实现跨平台上传发布 iOS App 免 Mac 自动化上架实战全解析
  • 大连网站建设平台宁夏考试教育网站
  • 微信网站对接室内设计师报考官网
  • Ceph常用的三种存储操作
  • 【前端】从零开始搭建现代前端框架:React 19、Vite、Tailwind CSS、ShadCN UI 完整实战教程-第1章:项目概述与技术栈介绍
  • react使用ag-grid及常用api笔记
  • MiniEngine学习笔记 : CommandListManager
  • 人工智能讲师数据治理讲师叶梓《数字化转型与大模型技术应用培训提纲》
  • 1.7.课设实验-数据结构-二叉树-文件夹创建系统
  • 互联网大学生创新创业项目计划书seo网址查询
  • 同时打开两个浏览器页面,关闭 A 页面的时候,要求 B 页面同时关闭,怎么实现?
  • 什么是react?
  • Arbess零基础学习 - 使用Arbess+GitLab实现 React.js 项目自动化构建/主机部署
  • 从事网站开发需要的证书网页设计免费网站推荐
  • 任何数据结构的构造或初始化,都应指定大小,避免数据结构无限增长吃光内存【示例】
  • 【开题答辩实录分享】以《基于java的宿舍楼洗衣机预约管理系统》为例进行答辩实录分享
  • 如何在iPhone 17/16/15上显示电池百分比
  • 网站换主机引擎网站推广法
  • 【普中STM32F1xx开发攻略--标准库版】-- 第 13 章 STM32 位带操作
  • MySQL绿色版完整教程:下载、安装、配置与远程访问
  • 集合(开发重点)
  • 如何通过第三方API接口获取拼多多店铺信息?
  • ⸢ 拾贰 ⸥⤳ 实战攻防演练:红蓝对抗 有效性检验