kubernetes - Kubernetes 上的 minIO:备份它的最佳方式
问题描述
到目前为止,我尝试通过以下两种方式进行部署:
1. Deploy it as a statefulset on Kubernetes and using persistent
volume of nfs as its storage . But then I learnt that we shouldn't
be running minio backed by NAS as erasure code should not be run on NAS data.
2. Deploy it as Daemonset using local volumes. This time I attached
separate disks to my nodes and labelled them such
that minio is scheduled to run on these nodes. The disks are mounted on
/data/minio on each of the nodes
但现在每天,节点都面临磁盘压力,minio pod 被驱逐。当我检查 kubelet 日志时:
Aug 13 21:05:45 staging-node2 kubelet[2188]: I0813 21:05:45.968179 2188 kubelet_pods.go:1073] Killing unwanted pod "minio-kjrkc"
Aug 13 21:05:45 staging-node2 kubelet[2188]: I0813 21:05:45.975372 2188 kuberuntime_container.go:559] Killing container "docker://6da1247718f8e6c92399e231f8c31ff1c510737c658ac2aca87c1659aa6b51cc" with 30 second grace period
它试图杀死豆荚,但容器永远不会死亡。即使 minio 收到 TERMINATED 信号,容器仍然处于启动状态。
本地 minio 安装还有哪些其他选择?
不推荐使用本地存储还是我使用不正确?
知道我是否必须为 minio 显式配置任何 pre-hook 以接受终止信号?
解决方案
在 Kubernetes 上部署 MinIO 的正确方法是使用 StatefulSet 在多个分布式节点上使用本地卷。您可以通过 Yaml 文件或 Helm Chart 或通过我们的 MinIO Operator 执行此操作。文档可在此处获取https://github.com/minio/minio/tree/master/docs/orchestration/kubernetes
本地 minio 安装还有哪些其他选择?
具有至少 4 个 Pod 和通过卷存储的 StatefulSethostPath
通常是正确的部署方式。根据用例和现有基础设施,可能还有其他相关方法。
不推荐使用本地存储还是我使用不正确?
建议使用本地存储。我需要更多信息来了解这里到底出了什么问题,但如果你有专用的本地存储驱动器,你应该没问题。
知道我是否必须为 minio 显式配置任何 pre-hook 以接受终止信号?
MinIO 处理信号以终止等。因此不需要预挂钩。
希望这会有所帮助,请加入我们的 Slack 频道@https ://slack.min.io进行详细讨论等。
推荐阅读
- ios - SKError 中的变量“code”在哪里定义?
- go - 将 JSON 反序列化为具有重复 JSON 映射的结构
- google-apps-script - Google Apps 脚本根据文件名将我的驱动器文件移动到团队驱动器文件夹
- json - 如何从领域中的json中删除“(”括号
- javascript - 控制台显示内部服务器错误?
- javascript - 段落内的 PHP Echo 不适用于所有记录
- sql - T-SQL获取2列之间匹配的字符百分比
- bash - 在使用变量和变量中的“/”时使用 sed 仅替换第一次出现
- javascript - iFrame javascript 上的 MutationObserver
- node.js - 节点:错误选项:--experimental-report