K8s对象名称和ID是什么?
集群中每个对象都有一个对此对象类型资源唯一的名称。(这个名称仅仅在同一命名空间namespace
中同类型资源中唯一)
例如:
在同一个namespace
只能有一个 Pod 以myapp-1234
命名,但可以有一个 Pod 和一个 Deployment 分别命名为myapp-1234
。
每个K8s对象都拥有一个UID
,这个ID在整个集群中都唯一。
四种常见资源名称约束
DNS子域名DNS Subdomain Names
大多数资源类型都需要一个名称,该名称可用作RFC 1123中定义的 DNS 子域名。这意味着名称必须:
- 包含不超过253个字符
- 仅包含小写字母数字字符,“-”或“.”
- 以字母数字字符开头
- 以字母数字字符结尾
RFC 1123 标签名称
某些资源类型要求其名称遵循RFC 1123中定义的 DNS 标签标准。这意味着名称必须:
- 最多包含 63 个字符
- 仅包含小写字母数字字符或“-”
- 以字母数字字符开头
- 以字母数字字符结尾
RFC 1035 标签名称
某些资源类型要求其名称遵循RFC 1035种定义的 DNS 标签标准。这意味着名称必须:
- 最多包含 63 个字符
- 仅包含小写字母数字字符或“-”
- 以字母字符开头
- 以字母数字字符结尾
路径段名称Path Segment Names
某些资源类型要求它们的名称能够安全地编码为路径段。换句话说,名称可能不是“.”。或“..”,名称不能包含“/”或“%”。