k3s 在哪里存储 Pod?

Vla*_*tos 3 kubernetes k3s

我找不到有关在节点上运行的 pod 存储位置的信息……我知道它的临时文件,但是如果我希望它们在特定存储或挂载点上创建怎么办?

从一个节点上的 df -h 我可以看到它安装:

shm 64M 0 64M 0% /run/k3s/containerd/io.containerd.grpc.v1.cri/sandboxes/a9d11117b319432fff833cda48e5dc16f88bcc28b8e8148077d607ddaf41dfab/shm
overlay 15G 1.9G 12G 14% /run/k3s/containerd/io.containerd.runtime.v1.linux/k8s.io/a9d11117b319432fff833cda48e5dc16f88bcc28b8e8148077d607ddaf41dfab/rootfs
overlay 15G 1.9G 12G 14% /run/k3s/containerd/io.containerd.runtime.v1.linux/k8s.io/ab8b17764bed69e2702565fa171fcc84defcab1de7093bd68f53581732ef39fb/rootfs
overlay 15G 1.9G 12G 14% /run/k3s/containerd/io.containerd.runtime.v1.linux/k8s.io/dc246f55de330a4a0d23da56bf7212008e49fe974302c664b930869544a58051/rootfs
tmpfs 396M 0 396M 0% /run/user/1000
Run Code Online (Sandbox Code Playgroud)

但是在哪里设置它用于该安装的根文件夹......我想要做的是指定例如 /cluster_tmp 作为部署在节点上的集群 pod 的主根......

我正在运行 rpi 集群,并且想使用 usb3 磁盘而不是 sd 卡进行存储,以减轻对卡的读/写...

Rei*_*ann 6

k3s站在巨人的肩膀上。作为容器运行时,它使用containerd。并且containerd使用自己的配置 toml 进行配置。见 man 5 containerd-config

root : The root directory for containerd metadata. (Default: "/var/lib/containerd")
Run Code Online (Sandbox Code Playgroud)

这就是它的/etc/containerd/config.toml样子:

root = "/var/lib/containerd"
state = "/run/containerd"
oom_score = 0
imports = ["/etc/containerd/runtime_*.toml", "./debug.toml"]
[grpc]
...
Run Code Online (Sandbox Code Playgroud)

root参数对您来说是最有趣的。在这里你可以找到它的描述:

root将用于为 containerd 存储任何类型的持久数据。快照、内容、容器和图像的元数据以及任何插件数据都将保存在此位置。根也为 containerd 加载的插件命名。每个插件都有自己的目录来存储数据。containerd 本身实际上没有任何需要存储的持久数据,它的功能来自加载的插件。

/var/lib/containerd/
??? io.containerd.content.v1.content
?   ??? blobs
?   ??? ingest
??? io.containerd.metadata.v1.bolt
?   ??? meta.db
??? io.containerd.runtime.v1.linux
?   ??? default
?   ??? example
??? io.containerd.snapshotter.v1.btrfs
??? io.containerd.snapshotter.v1.overlayfs
    ??? metadata.db
    ??? snapshots
Run Code Online (Sandbox Code Playgroud)

  • 也许这是最近的更改(当前运行 v1.20.2),但 K3S 似乎在“/var/lib/rancher/k3s/agent/containerd/”处存储了自己的嵌入式 containerd 实例(默认情况下)。在我的机器上,“/var/lib/containerd”似乎没有任何与 K3S 部署相关的工件。 (8认同)