k3s在哪里存放豆荚?

时间:2019-12-06 10:33:48

标签: 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

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

我正在运行rpi群集,想使用usb3磁盘而不是sd卡来存储,以减轻对该卡的读/写操作……

4 个答案:

答案 0 :(得分:6)

k3s 站在巨人的肩膀上。在容器运行时,它使用 containerd 。 然后, containerd 使用其自己的配置toml进行配置。参见man 5 containerd-config

root : The root directory for containerd metadata. (Default: "/var/lib/containerd")

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

root = "/var/lib/containerd"
state = "/run/containerd"
oom_score = 0
imports = ["/etc/containerd/runtime_*.toml", "./debug.toml"]
[grpc]
...

root参数对您来说最有趣。 Here,您可以找到其描述:

root将用于存储任何类型的持久化数据以便进行容器化。快照,内容,容器和图像的元数据以及任何插件数据都将保留在此位置。根也为容器加载的插件命名空间。每个插件都有其自己的目录,用于存储数据。容器本身实际上并不需要存储任何持久性数据,其功能来自于已加载的插件。

/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

答案 1 :(得分:0)

K3不会在节点上的特定目录中创建Pod。我建议您阅读有关Kubernetes architectureKubernetes components的信息。

如果要使用node或某些网络驱动器上的特定目录,则必须阅读Persistent VolumePersistent Volume Claim

Here,您可以找到有关如何指定容器中的哪个路径将指示VM /网络磁盘中的路径的信息。

如果此答案不是您想要的,请详细说明您的问题。

答案 2 :(得分:0)

我相信k3s带有自己的容器化二进制文件和相关配置。通过显式安装k3s,即通过带有选项的“ k3s服务器”命令

--container-runtime-endpoint value         (agent/runtime) Disable embedded containerd and use alternative CRI implementation

您可以指定根据需要配置的备用容器运行时,例如,存储在其他卷或分区中。

k3s documentation

中的更多信息

关于您的具体想法,如果USB记忆棒消失了怎么办?

答案 3 :(得分:0)

append应该是tmpfs,因此位于ram中而不是位于物理介质上。报告的目录没有实际的存储空间。

鉴于您的目标是将大多数内容存储在usb存储设备上,最简单的解决方案是使用/run / --data-dir命令行选项将整个k3s数据目录移动到该目录中。 Documentation。这将迫使k3s及其嵌入式容器将其所有工作文件和目录放置在usb存储器上。