Kubernetes上的minIO:备份它的最佳方法

时间:2019-08-13 21:38:27

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

但是现在每天,节点承受磁盘压力,微型吊舱受到 被逐出。当我检查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明确配置任何预钩以接受终止信号?

1 个答案:

答案 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,进行详细讨论等。