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