Container Runtime
浏览量:98
为了在 Pod 中运行容器,Kubernetes 使用 容器运行时(Container Runtime)。
默认情况下,Kubernetes 使用 容器运行时接口(Container Runtime Interface,CRI) 来与你所选择的容器运行时交互。
如果你不指定运行时,则 kubeadm 会自动尝试检测到系统上已经安装的运行时, 方法是扫描一组众所周知的 Unix 域套接字。 下面的表格列举了一些查找的容器运行时及其对应的套接字路径:
| 运行时 | 域套接字 |
|---|---|
| Docker Engine | /var/run/dockershim.sock |
| containerd | /run/containerd/containerd.sock |
| CRI-O | /var/run/crio/crio.sock |
如果同时检测到 Docker Engine 和 containerd,kubeadm 将优先考虑 Docker Engine。 这是必然的,因为 Docker 18.09 附带了 containerd 并且两者都是可以检测到的, 即使你仅安装了 Docker。 **如果检测到其他两个或多个运行时,kubeadm 输出错误信息并退出。**
kubelet 可以使用已弃用的 dockershim 适配器与 Docker Engine 集成(dockershim 是 kubelet 本身的一部分)。
containerd
1、安装和配置的先决条件
cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf overlay br_netfilter EOF sudo modprobe overlay sudo modprobe br_netfilter # 设置必需的 sysctl 参数,这些参数在重新启动后仍然存在。 cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 EOF # 应用 sysctl 参数而无需重新启动 sudo sysctl --system
2、下载continerd
yum install containerd.io -y
3、配置containerd
sudo mkdir -p /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml
4、修改配置和修改systemd cgroup程序驱动
结合 runc 使用 systemd cgroup 驱动,在 /etc/containerd/config.toml 中设置 # 找到containerd.runtimes.runc.options,在其下加入SystemdCgroup = true [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] SystemdCgroup = true [plugins."io.containerd.grpc.v1.cri".cni] # 将sandbox_image默认地址改为符合版本地址 sandbox_image = "registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6" #配置crictl客户端连接的运行时位置 cat > /etc/crictl.yaml <<EOF runtime-endpoint: unix:///run/containerd/containerd.sock image-endpoint: unix:///run/containerd/containerd.sock timeout: 10 debug: false EOF
5、启动
sudo systemctl restart containerd

神回复
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。