k8s术语,实体和实例

在 Kubernetes (K8s) 中,实体(Entity)实例(Instance) 是两种不同的概念,用于描述资源和资源的实际状态。下面是详细的解释:


实体(Entity)

  • 定义 : 实体通常是 Kubernetes 中定义的资源对象,比如 PodServiceDeploymentConfigMap 等,它们是抽象的声明,用于告诉 Kubernetes 期望的状态

  • 作用 : 实体定义了资源的配置和行为。比如,一个 Deployment 定义了需要运行多少个 Pod,每个 Pod 的镜像、环境变量等信息。

  • 存储位置 : 这些实体的定义保存在 etcd 中,etcd 是 Kubernetes 用于存储集群状态的分布式数据库。

  • 例子 : 一个 Deployment 对象如下:

    yaml 复制代码
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-app
    spec:
      replicas: 3
      template:
        spec:
          containers:
          - name: my-container
            image: my-image:v1
    • 这里的 Deployment 就是一个 实体

实例(Instance)

  • 定义: 实例是 Kubernetes 根据实体定义创建出来的实际运行资源的具体表现。它是实体在集群中的实际存在。
  • 作用 : 实例表示资源的 当前状态 ,比如实际运行的 PodNode
  • 动态性 : 实例是动态的,会随着实际运行情况发生变化。比如,Deployment 中声明了 3 个副本(实体),实际运行的 3 个 Pod 就是实例。如果一个 Pod 异常终止,Kubernetes 会创建新的 Pod 实例。
  • 例子 :
    • 根据上面的 Deployment,可能会有如下运行中的 Pod 实例:

      复制代码
      Pod: my-app-abc123
      Pod: my-app-def456
      Pod: my-app-ghi789
    • 这些具体的 PodDeployment 定义的实例。


对比:实体和实例

特性 实体(Entity) 实例(Instance)
作用 定义资源的期望状态 实体的实际运行状态
存储位置 保存在 etcd 中的配置文件 存在于节点或容器运行时
动态性 静态,通常由用户定义或 YAML 文件声明 动态,运行时由 K8s 控制器管理
示例资源 PodServiceDeployment 具体运行的 PodService IP 等实例

常见场景

  1. 声明 vs 实现

    • 用户通过 YAML 定义一个 Deployment,这是一个实体。
    • Kubernetes 创建的 Pod 是根据 Deployment 生成的实例。
  2. 同步期望状态和实际状态

    • Kubernetes 的控制器会不断检测实体的期望状态与实例的实际状态是否一致。如果不一致,会自动调整。例如:
      • 如果 Deployment 定义了 3 个副本,而实际运行的 Pod 只有 2 个,Kubernetes 会创建一个新的 Pod

总结

  • 实体 是一种静态的资源声明,描述了用户对集群的期望状态。
  • 实例 是实体运行时的具体表现,表示资源的实际状态。
  • Kubernetes 通过控制器的工作机制,将实体和实例之间的状态保持一致,确保集群处于期望的状态。
相关推荐
wxchyy16 分钟前
手把手教你入门云计算(二):这些技术改变了世界,你也能轻松掌握
hadoop·阿里云·docker·云原生·华为云·云计算·运维开发
名字还没想好☜1 小时前
Prometheus 告警实战:写 alerting rules、用 Alertmanager 做路由分组与抑制
运维·前端·javascript·docker·kubernetes·prometheus
qq_349447952 小时前
K8S Helm安装
云原生·容器·kubernetes
tangyal2 小时前
kubernetes(k8s)基础理论与集群部署
kubernetes·k8s·部署·node·理论·pod·集群cluster
2401_834636993 小时前
Docker 容器化技术全解:从镜像构建到容器编排的完整教案2
运维·docker·容器
Cicada1286 小时前
定时任务方案选择指南:crontab、K8s CronJob、Airflow、XXL-JOB
云原生·容器·kubernetes
秋风点枝6 小时前
第一篇:认识 Argo CD —— 从传统发布到云原生 GitOps
git·云原生·argocd
虎王物联6 小时前
Docker WASM 边缘计算:12ms 冷启动如何重塑 IoT 网关部署
物联网·docker·容器·边缘计算·wasm
猫吃了源码7 小时前
Ubuntu24系统安装部署最新版K8s(Kubernetes)1.36保姆级详细教程
云原生·容器·kubernetes
深念Y7 小时前
微服务抽取路线图:从胖单体到 ARM 集群
前端·arm开发·数据库·后端·微服务·云原生·架构