到目前为止,我已经尝试通过以下两种方式进行部署:
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
但是现在每天,节点承受磁盘压力,微型吊舱受到 被逐出。当我检查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明确配置任何预钩以接受终止信号?
答案 0 :(得分:0)
在Kubernetes上部署MinIO的正确方法是使用一个StatefulSet在多个分布式节点上使用本地卷。您可以通过Yaml文件或Helm Chart或我们的MinIO Operator来执行此操作。 https://github.com/minio/minio/tree/master/docs/orchestration/kubernetes
处提供了文档本地微型设备还剩下什么其他选择?
具有至少4个Pod并通过hostPath
卷进行存储的StatefulSet通常是正确的部署方式。根据用例和现有基础架构,可能还会有其他相关方法。
不建议使用本地存储,还是使用不正确?
建议使用本地存储。我需要更多信息以查看此处究竟出了什么问题,但是如果您有专用的本地存储驱动器,那应该没事。
是否知道我是否必须为minio明确配置任何预钩以接受终止信号?
MinIO处理终止信号等。不需要这样的预钩。
希望这会有所帮助,请加入我们的Slack频道@ https://slack.min.io,进行详细讨论等。