我找不到有关在节点上运行的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卡来存储,以减轻对该卡的读/写操作……
答案 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 architecture和Kubernetes components的信息。
如果要使用node
或某些网络驱动器上的特定目录,则必须阅读Persistent Volume
和Persistent Volume Claim
。
Here,您可以找到有关如何指定容器中的哪个路径将指示VM /网络磁盘中的路径的信息。
如果此答案不是您想要的,请详细说明您的问题。
答案 2 :(得分:0)
我相信k3s带有自己的容器化二进制文件和相关配置。通过显式安装k3s,即通过带有选项的“ k3s服务器”命令
--container-runtime-endpoint value (agent/runtime) Disable embedded containerd and use alternative CRI implementation
您可以指定根据需要配置的备用容器运行时,例如,存储在其他卷或分区中。
中的更多信息关于您的具体想法,如果USB记忆棒消失了怎么办?
答案 3 :(得分:0)
append
应该是tmpfs,因此位于ram中而不是位于物理介质上。报告的目录没有实际的存储空间。
鉴于您的目标是将大多数内容存储在usb存储设备上,最简单的解决方案是使用/run
/ --data-dir
命令行选项将整个k3s数据目录移动到该目录中。 Documentation。这将迫使k3s及其嵌入式容器将其所有工作文件和目录放置在usb存储器上。