You need to enable JavaScript to run this app.
导航

正确使用运行时与操作系统

最近更新时间2023.11.24 17:14:29

首次发布时间2023.11.24 16:41:05

本文主要描述使用容器服务时,关于运行时(包括 Containerd、安全容器)和操作系统的注意事项、操作配置建议、使用方法最佳实践。

合理配置 kubelet 的并发容器镜像拉取限制

在创建业务 Pod 过程中,请合理配置 kubelet 的并发容器镜像拉取限制。如果 kubelet 的并发容器镜像拉取限制较低,可能在节点上同时创建多个 Pod 等场景下,引发类似Failed to pull image "xxxxx:xxxxx": pull QPS exceeded的报错信息,影响您的业务。

您可以通过调整/etc/kubernetes/kubelet.conf中的--registry-pull-qps参数值(kubelet 的registryPullQPS参数)来合理配置并发限制的数量。

注意

修改/etc/kubernetes/kubelet.conf中的--registry-pull-qps参数,会有如下影响:

  • 需要重启 kubelet 才能使配置生效。重启 kubelet 可能会引起节点的短时间不可用,建议在业务低峰期操作。
  • 需要同时评估节点的带宽限制和镜像仓库的速率限制,避免速率过大引发额外的问题。

避免使用 Centos 6.x 及以下版本作为基础镜像

建议不要在您的容器服务业务中使用 Centos 6.x 及以下版本作为基础镜像。CentOS 6.x 版本镜像依赖系统的 vsyscall 机制,而容器服务中的 Worker 节点使用 vDSO 机制,默认不开启 vsyscall,因此运行 CentOS 6.x 版本镜像或运行以 CentOS 6.x 版本为基础镜像的业务镜像时会报错。

说明

vsyscall 和 vDSO 相关介绍,请参见 On vsyscalls and the vDSO

如果您运行 CentOS 6.x 版本镜像或使用以 CentOS 6.x 镜像作为基础镜像编译业务容器的镜像,并在 veLinux 或其他高版本的 Linux 节点上运行时,可能会遇出现以下报错导致业务容器无法正常启动:

  • 容器的 State.Reason 显示为 CrashLoopBackOff。
  • 容器的 Last State.Exit Code 为 139。

推荐您按如下两种方法使用 CentOS 镜像:

  • 方法一(推荐)
    基于 CentOS 7.X 版本或更高 CentOS 版本重新构建(build)镜像,并在容器服务业务中使用该镜像。
  • 方法二
    如果您无法使用 CentOS 7.X 版本或更高 CentOS 版本作为基础镜像,请 提交工单 获取技术支持。