官网地址:https://kubernetes.io/zh-cn/docs/home/supported-doc-versions
常见的容器运行时有:Containerd、CRI-O、Docker Engine、Mirantis Container Runtime。Kubernetes 1.24 之前的版本直接集成了 Docker Engine 的一个组件(dockershim),但自1.24版起Dockershim 已从 Kubernetes 项目中移除,如果需要使用基于Docker Engine的容器运行时则需要自行安装三方插件
Kubernetes 1.26 要求使用符合容器运行时接口(CRI)的运行时,需要在集群内每个节点上安装一个容器运行时,以使 Pod 可以运行在上面
cat <
sudo modprobe overlay
sudo modprobe br_netfilter
# 设置所需的 sysctl 参数,参数在重新启动后保持不变
cat <
sudo sysctl --system # 应用 sysctl 参数而不重新启动
lsmod | grep br_netfilter # 确认 br_netfilter 模块被加载
lsmod | grep overlay # 确认 overlay 模块被加载
# 确认 net.bridge.bridge-nf-call-iptables、net.bridge.bridge-nf-call-ip6tables 和 net.ipv4.ip_forward 系统变量在你的 sysctl 配置中被设置为 1
sysctl net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables net.ipv4.ip_forward
在Linux上控制组(CGroup)用于限制分配给进程的资源。kubelet和底层容器运行时都需要对接控制组来强制执行并为 Pod 和容器管理资源(诸如 CPU、内存这类资源)设置请求和限制
kubelet 和容器运行时需使用相同的 cgroup 驱动并且采用相同的配置
cgroupfs 驱动是 kubelet 中默认的 cgroup 驱动。当使用 cgroupfs 驱动时, kubelet 和容器运行时将直接对接 cgroup 文件系统来配置 cgroup
当 systemd 是初始化系统时, 不推荐使用 cgroupfs 驱动,因为 systemd 期望系统上只有一个 cgroup 管理器。 此外,如果你使用 cgroup v2, 则应用 systemd cgroup 驱动取代 cgroupfs
当Linux 系统发行版使用 systemd 作为其初始化系统时,初始化进程会生成并使用一个 root 控制组(cgroup)并充当 cgroup 管理器
如果将 systemd 配置为 kubelet 的 cgroup 驱动,那么也必须将 systemd 配置为容器运行时的 cgroup 驱动
Kubernetes 1.26 默认使用 v1 版本的 CRI API。如果容器运行时不支持 v1 版本的 API, 则 kubelet 会回退到使用(已弃用的)v1alpha2 版本的 API
在 Linux 上,containerd的默认CRI套接字是 /run/containerd/containerd.sock,配置文件路径为:/etc/containerd/config.toml
在 Windows 上,默认CRI端点是 npipe://./pipe/containerd-containerd,配置文件路径为:/etc/containerd/config.toml
Containerd安装地址