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

K8s 常用资源介绍

在 Kubernetes 中,资源指的是可以在集群中管理的对象(Objects)。这些资源用来定义和控制应用、服务、以及集群的状态。以下是 Kubernetes 中常见的资源及其用途介绍:


1. 工作负载资源(Workloads Resources)

工作负载资源定义和管理运行在集群中的应用程序。

1.1 Pod

  • 描述:Kubernetes 中最基本的部署单元,包含一个或多个容器。
  • 用途:运行单个容器或一组紧密相关的容器,通常作为服务或任务的一部分。

1.2 Deployment

  • 描述:用于声明式地管理无状态应用的 Pod 副本集。
  • 用途:实现应用的滚动更新、扩缩容和恢复。

1.3 StatefulSet

  • 描述:管理有状态应用,提供稳定的网络标识和存储。
  • 用途:用于数据库或分布式系统(如 Kafka、ZooKeeper)。

1.4 DaemonSet

  • 描述:确保每个节点都运行一个 Pod 的副本。
  • 用途:部署集群日志收集器、监控代理等守护进程。

1.5 Job 和 CronJob

  • Job
    • 描述:一次性任务,确保任务成功完成。
    • 用途:用于数据处理或临时计算任务。
  • CronJob
    • 描述:周期性任务。
    • 用途:定时运行任务,例如清理日志或备份数据。

2. 服务资源(Service Resources)

服务资源负责暴露和访问运行中的应用。

2.1 Service

  • 描述:为一组 Pod 提供稳定的 IP 和端口。
  • 用途:负载均衡、服务发现(ClusterIP、NodePort、LoadBalancer)。

2.2 Ingress

  • 描述:管理外部 HTTP/HTTPS 访问,支持基于路径或域名的路由。
  • 用途:暴露服务到公网,配合反向代理使用(如 NGINX)。

2.3 EndpointSlices

  • 描述:存储 Service 的 Pod 列表,优化网络流量路由。
  • 用途:提高 Service 的性能和扩展性。

3. 配置和存储资源(Config & Storage Resources)

用于管理应用程序的配置和持久化存储。

3.1 ConfigMap

  • 描述:以键值对的形式存储配置数据。
  • 用途:注入非敏感配置信息到 Pod。

3.2 Secret

  • 描述:以加密的方式存储敏感数据(如密码、API 密钥)。
  • 用途:保护敏感信息。

3.3 PersistentVolume (PV)

  • 描述:集群中的存储资源。
  • 用途:与 PersistentVolumeClaim 一起为 Pod 提供持久化存储。

3.4 PersistentVolumeClaim (PVC)

  • 描述:用户请求存储资源的声明。
  • 用途:为 Pod 挂载持久化存储。

3.5 Volume

  • 描述:提供容器内的临时或持久化存储。
  • 用途:挂载本地数据、外部存储、或 ConfigMap/Secret。

4. 集群管理资源(Cluster Management Resources)

用于配置和管理集群的行为。

4.1 Namespace

  • 描述:用于划分集群中的资源范围。
  • 用途:多租户隔离、环境隔离(开发、测试、生产)。

4.2 Node

  • 描述:集群中的物理或虚拟机。
  • 用途:为 Pod 提供计算资源(CPU、内存)。

4.3 Role 和 ClusterRole

  • 描述:定义资源访问权限。
  • 用途:细粒度的权限管理。

4.4 RoleBinding 和 ClusterRoleBinding

  • 描述:将 Role/ClusterRole 绑定到用户或组。
  • 用途:授予特定用户对资源的访问权限。

5. 自动化和扩展资源(Autoscaling Resources)

用于扩展和优化资源利用率。

5.1 HorizontalPodAutoscaler (HPA)

  • 描述:根据指标(如 CPU 使用率)自动调整 Pod 数量。
  • 用途:无状态应用的自动扩缩容。

5.2 VerticalPodAutoscaler (VPA)

  • 描述:根据实际需求调整 Pod 的资源(CPU、内存)分配。
  • 用途:优化资源使用,减少浪费。

5.3 Cluster Autoscaler

  • 描述:根据集群负载自动添加或删除节点。
  • 用途:自动调整节点数量。

6. 网络资源(Networking Resources)

控制网络流量和安全性。

6.1 NetworkPolicy

  • 描述:定义 Pod 之间或 Pod 与外部流量的访问控制规则。
  • 用途:实现细粒度的网络隔离。

7. 自定义资源(Custom Resources)

允许用户扩展 Kubernetes API 以满足特殊需求。

7.1 CustomResourceDefinition (CRD)

  • 描述:定义新的自定义资源。
  • 用途:结合 Operator 实现复杂场景(如 Kafka Operator)。

资源间的关系

  • 工作负载资源通过 Service 对外暴露,使用 ConfigMap/Secret 配置,可能需要 PV/PVC 提供存储。
  • 自动化资源(如 HPA)用于优化工作负载运行。
  • 网络资源(如 NetworkPolicy)保护工作负载的安全。


http://www.kler.cn/a/454512.html

相关文章:

  • ArcGIS土地利用数据制备、分析及基于FLUS模型土地利用预测(数据采集、处理、分析、制图)
  • Unity中UGUI的Button动态绑定引用问题
  • json字符串或者json文件转换成相应的bean,报错“Unrecognized field xxx , not marked as ignorable”
  • 数据仓库和数据湖 数据仓库和数据库
  • Java包装类型的缓存
  • 重温设计模式--迭代器模式
  • clickhouse测试报告
  • Git如何设置和修改当前分支跟踪的上游分支
  • Ubuntu22.10/22.04 autoinstall--OK
  • spring boot 火车售票微信小程序LW
  • mongodb和Cassandra
  • 数学笔记:公理
  • docker安装nginx,docker部署vue前端,以及docker部署java的jar部署
  • SpringbBoot如何实现Tomcat集群的会话管理
  • Linux PWM(脉宽调制
  • Photoshop启动错误:找不到MSVCP140.dll的多步骤解决指南
  • mysql数据库中,一棵3层的B+树,假如数据节点大小是1k,那这棵B+可以存多少条记录(2100万的由来)
  • 01 Oracle 基本操作
  • mysql高版本导入到低版本
  • 解析 Facebook:社交网络的影响力与挑战
  • Android 之 Activity 的启动模式(launchMode)
  • flask后端开发(10):问答平台项目结构搭建
  • dockerfile文档编写(2):docker pull、apt install和pip镜像加速
  • 模拟双目标点成像:如何使用Python实现不同波前调制和成像算法
  • Sentinel 学习笔记3-责任链与工作流程
  • 关于分布式数据库需要了解的相关知识!!!