帮助手册

Kubernetes 指导报表

获取一套最佳实践建议,提升 Kubernetes 资源的成本效益、增强性能并确保可靠性。这些建议按三个优先级别分组:高、中和低。

请按顺序遵循这些建议,以维持高可用性并最大程度降低宕机时间。

最佳实践 

节点

1. 没有标签的资源

优先级

最佳实践:

为工作负载分配适当的标签。

描述

追踪没有标签的资源会对时间和资源管理产生不利影响。分配标签将提升资源处理效率。

2. 节点 CPU 使用率过高

优先级

最佳实践:

确保节点的 CPU 使用率不超过 90%。

描述

根据节点容量,为所有倾向于过度使用 CPU 的资源分配合理的限制。

3. 节点内存使用率过高

优先级

最佳实践:

确保节点的内存使用率不超过 90%。

描述

根据节点容量,为所有倾向于过度使用内存的资源分配合理的限制。

4. 节点 CPU 使用率过低

优先级

最佳实践

确保节点的 CPU 使用率不低于 10%。

描述

终止或缩减低使用率节点,以节省资金和资源。分配更少的资源,使操作保持均衡。

5. 节点内存使用率过低

优先级

最佳实践:

确保节点的内存使用率不低于 10%。

描述

终止或缩减低使用率节点,以节省资金和资源。分配更少的资源,使操作保持均衡。

Pod

1. 没有标签的资源

优先级:

最佳实践:

为工作负载分配适当的标签。

描述

追踪没有标签的资源会对时间和资源管理产生不利影响。分配标签将提升资源处理效率。

2. 没有控制器的 Pod

优先级

最佳实践

使用适当的控制器部署 Pod。

描述

没有控制器的 Pod 存在潜在风险,且无法用于扩缩容。控制器可限制 Pod 的访问权限,从而降低安全漏洞风险。在节点发生故障时,这些 Pod 不会被重新调度。

3. 在默认命名空间中运行的工作负载

优先级

最佳实践

将工作负载移至独立的命名空间或项目

描述

为工作负载使用不同的命名空间有助于组织对象,并能在 Kubernetes 集群内创建逻辑分区,同时也有助于提升安全性。

Deployment

1. 没有标签的资源

优先级

最佳实践

为工作负载分配适当的标签。

描述

追踪没有标签的资源会对时间和资源管理产生不利影响。分配标签将提升资源处理效率。

2. 缺少 CPU 请求

优先级

最佳实践

为工作负载配置 CPU 请求。

描述

当工作负载未指定容器 CPU 请求时,集群无法在节点之间均匀分配负载。为所有工作负载配置 CPU 请求,将使集群能够均匀分配负载。

3. 缺少 CPU 限制

优先级

最佳实践

为工作负载配置 CPU 限制。

描述

当工作负载未指定容器 CPU 限制时,集群无法在节点之间均匀分配负载。为所有工作负载配置 CPU 限制,将使集群能够均匀分配负载。

4. 缺少内存请求

优先级

最佳实践

为工作负载配置内存请求。

描述

当工作负载未指定容器内存请求时,集群无法在节点之间均匀分配负载。为所有工作负载配置内存请求,将使集群能够均匀分配负载。

5. 缺少内存限制

优先级

最佳实践

为工作负载配置内存限制。

描述

当工作负载未指定容器内存限制时,集群无法在节点之间均匀分配负载。为所有工作负载配置内存限制,将使集群能够均匀分配负载。

6. 缺少存活探针

优先级

最佳实践

配置存活探针(liveness probe),在容器状态不就绪时重启容器。

描述

重启容器与了解其状态同样重要,后者表明容器尚未准备好接收流量。

7. 缺少就绪探针

优先级

最佳实践

配置就绪探针(readiness probe),以指示容器的就绪状态。

描述

如果容器的就绪状态未知且处于非就绪状态,流量可能会发生积压。

8. 未指定镜像标签

优先级

最佳实践

指定稳定的标签,有助于明确管理容器镜像。

描述

标签使您能够控制应用程序更新的时机,同时降低因镜像版本差异导致意外行为的风险。

9. ImagePullPolicy 未设置为 Always

优先级

最佳实践

ImagePullPolicy 设置为 Always,以确保获取最新版本的镜像。

描述

ImagePullPolicy 设置为 Always 时,每次启动 Kubernetes Pod 时都能确保部署最新版本的镜像。

10. 允许以 Root 身份运行

优先级

最佳实践

确保不允许 RunAsRoot

描述

如果允许 RunAsRoot,Root 用户将拥有所有权限,安全性可能因此受损。

11. 允许以特权模式运行

优先级

最佳实践

确保不允许 RunAsPrivileged

描述:

如果允许 RunAsPrivileged,容器将能够访问主机的所有系统资源,包括内核功能和设备。

12. 允许特权提升

优先级

最佳实践

确保不允许 AllowPrivilegedEscalations

描述

如果允许 AllowPrivilegedEscalations,某个随机进程可能获得比其父进程更高的权限。

13. 未设置只读根文件系统

优先级

最佳实践

ReadOnlyRootFileSystem 设置为 True

描述

如果 ReadOnlyRootFileSystem 未设置为 True,容器将可以访问并编辑挂载的主机卷。

14. 在默认命名空间中运行的工作负载

优先级

最佳实践

将工作负载移至独立的命名空间或项目

描述

为工作负载使用不同的命名空间有助于组织对象,并能在 Kubernetes 集群内创建逻辑分区,同时也有助于提升安全性。

15. 每个 Deployment 只有一个副本

优先级

最佳实践

为 Deployment 创建多个副本以实现容错。

描述

如果当前副本发生故障,其他副本将维持工作负载的运行。建议为每个 Deployment 创建多个副本。

DaemonSet

1. 没有标签的资源

优先级

最佳实践

为工作负载分配适当的标签。

描述

追踪没有标签的资源会对时间和资源管理产生不利影响。分配标签将提升资源处理效率。

2. 缺少 CPU 请求

优先级

最佳实践

为工作负载配置 CPU 请求。

描述

当工作负载未指定容器 CPU 请求时,集群无法在节点之间均匀分配负载。

3. 缺少 CPU 限制

优先级

最佳实践

为工作负载配置 CPU 限制。

描述

当工作负载未指定容器 CPU 限制时,集群无法在节点之间均匀分配负载。

4. 缺少内存请求

优先级

最佳实践

为工作负载配置内存请求。

描述

当工作负载未指定容器内存请求时,集群无法在节点之间均匀分配负载。

5. 缺少内存限制

优先级

最佳实践

为工作负载配置内存限制。

描述

当工作负载未指定容器内存限制时,集群无法在节点之间均匀分配负载。

6. 缺少存活探针

优先级

最佳实践

配置存活探针(liveness probe),在容器状态不就绪时重启容器。

描述

重启容器与了解其状态同样重要,后者表明容器尚未准备好接收流量。

7. 缺少就绪探针

优先级

最佳实践

配置就绪探针(readiness probe),以指示容器的就绪状态。

描述

如果容器的就绪状态未知且处于非就绪状态,流量可能会发生积压。

8. 未指定镜像标签

优先级

最佳实践

指定稳定的标签,有助于明确管理容器镜像。

描述

标签使您能够控制应用程序更新的时机,同时降低因镜像版本差异导致意外行为的风险。

9. ImagePullPolicy 未设置为 Always

优先级

最佳实践

ImagePullPolicy 设置为 Always,以确保获取最新版本的镜像。

描述

ImagePullPolicy 设置为 Always 时,每次启动 Kubernetes Pod 时都能确保部署最新版本的镜像。

10. 允许以 Root 身份运行

优先级

最佳实践

确保不允许 RunAsRoot

描述

如果允许 RunAsRoot,Root 用户将拥有所有权限,安全性可能因此受损。

11. 允许以特权模式运行

优先级

最佳实践

确保不允许 RunAsPrivileged

描述

如果允许 RunAsPrivileged,容器将能够访问主机的所有系统资源,包括内核功能和设备。

12. 允许特权提升

优先级

最佳实践

确保不允许 AllowPrivilegedEscalations

描述

如果允许 AllowPrivilegedEscalations,某个随机进程可能获得比其父进程更高的权限。

13. 未设置只读根文件系统

优先级

最佳实践

ReadOnlyRootFileSystem 设置为 True

描述

如果 ReadOnlyRootFileSystem 未设置为 True,容器将可以访问并编辑挂载的主机卷。

14. 在默认命名空间中运行的工作负载

优先级

最佳实践

将工作负载移至独立的命名空间或项目

描述

为工作负载使用不同的命名空间有助于组织对象,并能在 Kubernetes 集群内创建逻辑分区,同时也有助于提升安全性。

StatefulSet 

1. 没有标签的资源

优先级

最佳实践

为工作负载分配适当的标签。

描述

追踪没有标签的资源会对时间和资源管理产生不利影响。分配标签将提升资源处理效率。

2. 缺少 CPU 请求

优先级

最佳实践

为工作负载配置 CPU 请求。

描述

当工作负载未指定容器 CPU 请求时,集群无法在节点之间均匀分配负载。

3. 缺少 CPU 限制

优先级

最佳实践

为工作负载配置 CPU 限制。

描述

当工作负载未指定容器 CPU 限制时,集群无法在节点之间均匀分配负载。

4. 缺少内存请求

优先级

最佳实践

为工作负载配置内存请求。

描述

当工作负载未指定容器内存请求时,集群无法在节点之间均匀分配负载。

5. 缺少内存限制

优先级

最佳实践

为工作负载配置内存限制。

描述

当工作负载未指定容器内存限制时,集群无法在节点之间均匀分配负载。

6. 缺少存活探针

优先级

最佳实践

配置存活探针(liveness probe),在容器状态不就绪时重启容器

描述

重启容器与了解其状态同样重要,后者表明容器尚未准备好接收流量。

7. 缺少就绪探针

优先级

最佳实践

配置就绪探针(readiness probe),以指示容器的就绪状态。

描述

如果容器的就绪状态未知且处于非就绪状态,流量可能会发生积压。

8. 未指定镜像标签

优先级

最佳实践

指定稳定的标签,有助于明确管理容器镜像。

描述

标签使您能够控制应用程序更新的时机,同时降低因镜像版本差异导致意外行为的风险。

9. ImagePullPolicy 未设置为 Always

优先级

最佳实践

ImagePullPolicy 设置为 Always,以确保获取最新版本的镜像。

描述

ImagePullPolicy 设置为 Always 时,每次启动 Kubernetes Pod 时都能确保部署最新版本的镜像。

10. 允许以 Root 身份运行

优先级

最佳实践

确保不允许 RunAsRoot

描述

如果允许 RunAsRoot,Root 用户将拥有所有权限,安全性可能因此受损。

11. 允许以特权模式运行

优先级

最佳实践

确保不允许 RunAsPrivileged

描述

如果允许 RunAsPrivileged,容器将能够访问主机的所有系统资源,包括内核功能和设备。

12. 允许特权提升

优先级

最佳实践

确保不允许 AllowPrivilegedEscalations

描述

如果允许 AllowPrivilegedEscalations,某个随机进程可能获得比其父进程更高的权限。

13. 未设置只读根文件系统

优先级

最佳实践

ReadOnlyRootFileSystem 设置为 True

描述

如果 ReadOnlyRootFileSystem 未设置为 True,容器将可以访问并编辑挂载的主机卷。

14. 在默认命名空间中运行的工作负载

优先级

最佳实践

将工作负载移至独立的命名空间或项目。

描述

为工作负载使用不同的命名空间有助于组织对象,并能在 Kubernetes 集群内创建逻辑分区,同时也有助于提升安全性。

Job

1. 没有标签的资源

优先级

最佳实践

为工作负载分配适当的标签。

描述

追踪没有标签的资源会对时间和资源管理产生不利影响。分配标签将提升资源处理效率。

2. Job 完成后未清理

优先级

最佳实践

使用 ttlSecondsAfterFinished 参数配置 Job,使其在完成后自动清理。

描述

ttlSecondsAfterFinished 参数用于限制已完成预期操作的 Job 对象的生命周期。如果 Job 未被清理,将影响集群操作。

本文档对您有帮助吗?

您愿意帮助我们改进文档吗?请告诉我们哪些方面可以做得更好。


很抱歉本文档未能让您满意。我们希望了解可以从哪些方面改进您的体验。


感谢您抽出时间分享反馈。我们将利用您的反馈来改进在线帮助资源。

短链接已复制!