k8s集群搭建nerdctl
时间: 2025-06-04 22:46:56 浏览: 10
### 配置和使用 Nerdctl
Nerdctl 是一个兼容 Docker CLI 的容器命令行工具,可以在不安装 Docker 的情况下管理容器。对于 Kubernetes 集群而言,在某些场景下可能需要通过 Nerdctl 来执行一些容器操作。
#### 安装 Nerdctl
为了能够在 Kubernetes 节点上使用 Nerdctl 工具,需先完成其安装过程:
```bash
VERSION=$(curl -s https://api.github.com/repos/containerd/nerdctl/releases/latest | grep tag_name | cut -d '"' -f 4)
wget https://github.com/containerd/nerdctl/releases/download/${VERSION}/nerdctl-${VERSION}-linux-amd64.tar.gz
tar xvfz nerdctl-${VERSION}-linux-amd64.tar.gz
sudo mv bin/nerdctl /usr/local/bin/
rm -rf README.md LICENSE ner*
# 测试是否安装成功
nerdctl --version
```
上述脚本会下载最新版的 Nerdctl 并将其放置到系统的 PATH 中以便全局调用[^2]。
#### 设置 Containerd 和 CRI 插件
为了让 Nerdctl 正常工作并与 Kubernetes 协同运作,还需要确保 Containerd 及其 CRI 插件已正确配置。这通常涉及到编辑 `/etc/containerd/config.toml` 文件来指定必要的参数,例如沙盒镜像地址等。
```toml
cat > /etc/containerd/config.toml <<EOF
disabled_plugins = ["restart"]
[plugins.linux]
shim_debug = true
[plugins.cri.registry.mirrors."docker.io"]
endpoint = ["https://docker.mirrors.ustc.edu.cn"]
[plugins.cri]
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.5"
EOF
```
接着重启 Containerd 服务使更改生效:
```bash
systemctl enable --now containerd
systemctl restart containerd
```
此时已经完成了基本环境准备,可以利用 Nerdctl 进行各种容器生命周期管理和调试任务了。
#### 使用 Nerdctl 执行常见命令
下面是一些常用的 Nerdctl 命令实例,这些命令可以帮助管理员更好地理解和控制集群内的容器状态:
- 列出所有正在运行中的容器:
```bash
nerdctl ps
```
- 查看特定 Pod 或者容器的日志输出:
```bash
nerdctl logs <pod_or_container_id>
```
- 启动一个新的交互式 shell 终端进入某个现有容器内部:
```bash
nerdctl exec -it <container_id> sh
```
以上就是如何在 Kubernetes 集群中配置并使用 Nerdctl 的介绍。
阅读全文
相关推荐









