对象名称和 ID

    每个 Kubernetes 对象也有一个 UID 来标识在整个集群中的唯一性。

    比如,在同一个 中只能有一个名为 的 Pod,但是可以命名一个 Pod 和一个 Deployment 同为 myapp-1234

    对于用户提供的非唯一性的属性,Kubernetes 提供了 标签(Labels)和 机制。

    客户端提供的字符串,引用资源 URL 中的对象,如。

    某一时刻,只能有一个给定类型的对象具有给定的名称。但是,如果删除该对象,则可以创建同名的新对象。

    当对象所代表的是一个物理实体(例如代表一台物理主机的 Node)时, 如果在 Node 对象未被删除并重建的条件下,重新创建了同名的物理主机, 则 Kubernetes 会将新的主机看作是老的主机,这可能会带来某种不一致性。

    以下是比较常见的四种资源命名约束。

    很多资源类型需要可以用作 DNS 子域名的名称。 DNS 子域名的定义可参见 RFC 1123。 这一要求意味着名称必须满足如下规则:

    • 不能超过 253 个字符
    • 只能包含小写字母、数字,以及 ‘-‘ 和 ‘.’
    • 必须以字母数字开头
    • 必须以字母数字结尾

    某些资源类型需要其名称遵循 RFC 1123 所定义的 DNS 标签标准。也就是命名必须满足如下规则:

    • 最多 63 个字符
    • 只能包含小写字母、数字,以及 ‘-‘
    • 必须以字母数字结尾

    某些资源类型需要其名称遵循 RFC 1035 所定义的 DNS 标签标准。也就是命名必须满足如下规则:

    • 最多 63 个字符
    • 只能包含小写字母、数字,以及 ‘-‘
    • 必须以字母开头
    • 必须以字母数字结尾

    下面是一个名为 nginx-demo 的 Pod 的配置清单:

    说明:

    某些资源类型可能具有额外的命名约束。

    Kubernetes 系统生成的字符串,唯一标识对象。

    在 Kubernetes 集群的整个生命周期中创建的每个对象都有一个不同的 UID,它旨在区分类似实体的历史事件。

    • 进一步了解 Kubernetes 标签和。