Kubernetes 对象标识详解:Name、UID、Label

Kubernetes 对象标识详解:Name、UID、Label

📌 前言

在 Kubernetes 中,每个对象都需要被唯一标识。Kubernetes REST API 使用 Name 和 UID 来明确标识对象,同时提供 Labels 和 Annotations 用于非唯一的用户自定义属性。

本文将帮你理清这三者的区别与用法。


一、三种标识方式对比

标识方式 特点 谁生成 主要用途
Name 同一时间唯一,可重复使用 用户定义 API URL 中引用对象
UID 整个集群生命周期内全局唯一 K8s 自动生成 区分不同时间创建的同名对象
Labels 非唯一,键值对 用户定义 筛选、分组、选择器
Annotations 非唯一,键值对 用户定义 附加元数据(非筛选用途)

二、Name(名称)

定义

Name 是用户在创建对象时赋予的唯一标识符。

特性

  • 唯一性约束:同一类型对象中,同一时间只能有一个相同的 Name
  • 可复用:对象被删除后,可以用相同的 Name 创建新对象
  • 用途:在 API URL 中引用对象

URL 示例

/api/v1/pods/some-name

text

命名规则

  • 最长 253 个字符
  • 允许字符:数字、-、.
  • ⚠️ 某些资源可能有更具体的限制

示例

yaml 复制代码
metadata:
  name: nginx-pod  # 这就是 Name

速记口诀

  • Name 用户起,同一时间不能重
  • 删了还能再用上,URL 里面显神通
  • UID 自动生,一生一次永不同
  • Label 和 Annotation,筛选标记随便用
相关推荐
艾伦_耶格宇11 小时前
【DOCKER容器实战】-5 Docker容器镜像的构建
运维·docker·容器
分布式存储与RustFS12 小时前
RustFS 该跟 stable 还是 nightly?两条版本线的分工、风险与回退,一张表说清
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
ggaofeng14 小时前
k8s中的dns
云原生·容器·kubernetes
我不会起名字3221 天前
K8s Ingress 返回 502 但后端日志正常:4 类上游断连与排查链
kubernetes·k8s·ingress·502·keepalive
姜鱼问生1 天前
每次开机手动检查 6 样东西?我写了个 2 秒自检脚本
运维·网络·nginx·docker·容器
wangqiaowq1 天前
PostgresSQL server Docker 安装部署
运维·docker·容器
程序员阿明1 天前
docker搭建视频流服务go2rtc,webRTC
docker·容器·webrtc
JavaPub-rodert1 天前
Docker 容器为什么 stop 半天停不下来?讲透 PID 1、SIGTERM、SIGKILL、僵尸进程与 tini
运维·docker·容器
我不会起名字3221 天前
Pod 一直 Pending:调度器 5 类失败原因与 kubectl describe 的正确读法
云原生·kubernetes·调度·排查
我不会起名字3221 天前
K8s 服务 DNS 解析偶发 5 秒超时:conntrack 与 ndots 的 3 个坑
kubernetes·k8s·dns·conntrack·coredns