kubernetes资源命名约束和最佳实践

简介: kubernetes资源命名约束和最佳实践

kubernetes资源命名约束

名称和 UID

UID:一个非空的、不透明的、系统生成的值,保证在时间和空间上是唯一的;旨在区分类似实体的历史事件。

Name:保证在特定时间在给定范围内唯一的非空字符串;用于资源 URL;由客户在创建时提供,并鼓励对人类友好;旨在促进单例对象的创建幂等性和空间唯一性,区分不同的实体。

名称和 UID 的目标

  1. 跨空间和时间唯一标识(通过 UID)对象。
  2. 跨空间唯一地命名(通过名称)对象。
  3. 在 API 操作或配置文件中提供人性化的名称。
  4. 允许 API 资源的幂等创建 (#148) 和单例对象的空间唯一性的实施。
  5. 允许为某些对象自动生成 DNS 名称。

名称

客户端提供的字符串,它引用资源 URL 中的对象,例如/api/v1/pods/some-name.

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

**注意:**当对象代表一个物理实体时,比如 Node 代表一个物理主机,当主机以相同的名称重新创建而不删除和重新创建 Node 时,Kubernetes 将新主机视为旧主机,这可能导致不一致。

DNS 子域名

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

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

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

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

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

  • 最多 63 个字符
  • 只能包含小写字母、数字,以及 ‘-’
  • 必须以字母开头
  • 必须以字母数字结尾
路径分段名称

某些资源类型要求名称能被安全地用作路径中的片段。 换句话说,其名称不能是 ...,也不可以包含 /% 这些字符。

节点命名规则

# 公有云方案1
# Node的名称会在集群资源分配阶段确定下来,每个节点都会分配到一个序号`${seq}`,从0开始的自增整型。这个与k8s中StatefulSet的命名规则保持一致,因此能够做到云上云下一致管理。
<cluster_name>-<seq>
# 公有云方案2
数据中心-机房-node-number
# 公有云方案3(推荐)
# 用.分割更好
# 这样dns上你可以分到子域里
# 这样自动化时候,你就对着某个子域,防止写错到全局
# 在私有云环境中可以加上机架号,便于机器故障快速定位
kubenode{number}.集群代号.机房.公司domain

参考链接

Kubernetes 对象名称和 IDs

https://datatracker.ietf.org/doc/html/rfc1123

Kubernetes 设计:标识符和名称

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
目录
相关文章
|
27天前
|
运维 Kubernetes 监控
揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?
揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?
39 0
|
1月前
|
存储 Kubernetes 负载均衡
Kubernetes的“厨房”:架构是菜谱,组件是厨具,资源对象是食材(下)
本文深入探讨了Kubernetes(K8s)的架构、核心组件以及资源对象。Kubernetes作为一个开源的容器编排系统,通过其独特的架构设计和丰富的组件,实现了对容器化应用程序的高效管理和扩展。通过本文的介绍,读者可以深入了解Kubernetes的架构、核心组件以及资源对象,从而更好地应用和管理容器化应用程序。Kubernetes的灵活性和可扩展性使得它成为容器编排领域的领先者,为企业提供了强大的容器运行环境。
|
4月前
|
Kubernetes Cloud Native 应用服务中间件
云原生|kubernetes|ResourceQuota 资源与准入控制器
云原生|kubernetes|ResourceQuota 资源与准入控制器
61 0
|
27天前
|
消息中间件 Kubernetes Kafka
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
18 0
|
29天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于Docker和Kubernetes的最佳实践
在现代云计算环境中,自动化运维成为保障系统稳定性与提升效率的关键。本文深入探讨了如何利用Docker容器化技术和Kubernetes容器编排工具构建一个高效、可靠的自动化运维体系。文中不仅介绍了相关的技术原理,还结合具体案例分析了实施过程中的常见问题及解决方案,为读者提供了一套行之有效的最佳实践指南。
|
1月前
|
Kubernetes API 调度
Kubernetes的“厨房”:架构是菜谱,组件是厨具,资源对象是食材(上)
本文深入探讨了Kubernetes(K8s)的架构、核心组件以及资源对象。Kubernetes作为一个开源的容器编排系统,通过其独特的架构设计和丰富的组件,实现了对容器化应用程序的高效管理和扩展。通过本文的介绍,读者可以深入了解Kubernetes的架构、核心组件以及资源对象,从而更好地应用和管理容器化应用程序。Kubernetes的灵活性和可扩展性使得它成为容器编排领域的领先者,为企业提供了强大的容器运行环境。
|
2月前
|
Kubernetes 调度 微服务
K8s 生产最佳实践 - 限制 NameSpace 资源用量
K8s 生产最佳实践 - 限制 NameSpace 资源用量
|
2月前
|
Kubernetes Linux 调度
「译文」深入了解 Kubernetes 指标 - 第三部分 - 容器资源指标
「译文」深入了解 Kubernetes 指标 - 第三部分 - 容器资源指标
|
2月前
|
存储 Kubernetes 容灾
Velero 系列文章(五):基于 Velero 的 Kubernetes 集群备份容灾生产最佳实践
Velero 系列文章(五):基于 Velero 的 Kubernetes 集群备份容灾生产最佳实践
|
2月前
|
消息中间件 Kubernetes NoSQL
「译文」K8S 及 OpenShift 上应用程序的 Labels 和 Annotations 最佳实践
「译文」K8S 及 OpenShift 上应用程序的 Labels 和 Annotations 最佳实践