如何将 S3 存储桶复制到 Kubernetes 节点
How to copy an S3 bucket onto Kubernetes nodes
我想在 Kubernetes 节点上复制一个 S3 存储桶作为 DaemonSet,因为新节点在启动后也会立即获得 s3 存储桶副本,
我更喜欢 S3 副本而不是 Kubernetes 节点,因为将 S3 作为 AWS API 直接复制到 pod 将意味着多次调用,因为多个 pods 需要它,并且每次复制内容都需要时间pod 正在启动。
假设您的 S3 内容是静态的并且不经常更改。我相信不仅仅是 DaemonSet
it makes more sense to use a one time Job to copy the whole S3 bucket to a local disk. It's not clear how you would signal the kube-scheduler that your node is not ready until the S3 bucket is fully copied. But, perhaps you can taint
你的节点在作业完成之前并在作业完成后删除污点。
另请注意,S3 本身就很慢,并且一次用于处理 (reading/writing) 个单个文件,因此如果您的存储桶中有大量数据,则需要很长时间才能复制到节点磁盘。
如果您的 S3 内容是动态的(不断变化的),那么它将更具挑战性,因为您必须同步文件。您的应用程序可能必须缓存架构,您可以在其中转到本地磁盘查找文件,如果它们不存在,则向 S3 发出请求。
我想在 Kubernetes 节点上复制一个 S3 存储桶作为 DaemonSet,因为新节点在启动后也会立即获得 s3 存储桶副本, 我更喜欢 S3 副本而不是 Kubernetes 节点,因为将 S3 作为 AWS API 直接复制到 pod 将意味着多次调用,因为多个 pods 需要它,并且每次复制内容都需要时间pod 正在启动。
假设您的 S3 内容是静态的并且不经常更改。我相信不仅仅是 DaemonSet
it makes more sense to use a one time Job to copy the whole S3 bucket to a local disk. It's not clear how you would signal the kube-scheduler that your node is not ready until the S3 bucket is fully copied. But, perhaps you can taint
你的节点在作业完成之前并在作业完成后删除污点。
另请注意,S3 本身就很慢,并且一次用于处理 (reading/writing) 个单个文件,因此如果您的存储桶中有大量数据,则需要很长时间才能复制到节点磁盘。
如果您的 S3 内容是动态的(不断变化的),那么它将更具挑战性,因为您必须同步文件。您的应用程序可能必须缓存架构,您可以在其中转到本地磁盘查找文件,如果它们不存在,则向 S3 发出请求。