我想在Kubernetes节点上将一个S3存储桶作为DaemonSet复制,因为新节点一旦启动就将获得s3存储桶副本,
我更喜欢将S3复制到Kubernetes节点,因为将S3作为AWS API直接复制到Pod将意味着多个调用,因为多个Pod需要它,并且每次Pod启动时都需要花费时间来复制内容。
最佳答案
假设您的S3内容是静态的,并且不会经常更改。我相信,除了使用 DaemonSet
以外,还可以使用一次Job将整个S3存储桶复制到本地磁盘上更有意义。在完全复制S3存储桶之前,尚不清楚如何向kube-scheduler发信号,通知您的节点尚未准备就绪。但是,也许您可以在作业完成之前 taint
您的节点,并在作业完成后删除污点。
还要注意,S3本质上很慢,并且一次只能用于处理(读取/写入)单个文件,因此,如果存储桶中有大量数据,则复制到节点磁盘将需要很长时间。
如果您的S3内容是动态的(不断变化的),那么它将更具挑战性,因为您必须同步文件。您的应用程序可能必须缓存体系结构,然后在该结构中转到本地磁盘以查找文件;如果文件不存在,则向S3发出请求。
关于amazon-s3 - 如何将S3存储桶复制到Kubernetes节点上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53047638/