Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 在s3和kubernetes容器之间复制文件_Amazon Web Services_Amazon S3_Kubernetes - Fatal编程技术网

Amazon web services 在s3和kubernetes容器之间复制文件

Amazon web services 在s3和kubernetes容器之间复制文件,amazon-web-services,amazon-s3,kubernetes,Amazon Web Services,Amazon S3,Kubernetes,我知道如何在本地计算机和Kubernetes容器之间复制文件: kubectl cp /local_dir/some_file container:/remote_dir/some_file 使用AWS CLI从s3存储桶到EC2: aws s3 cp remote local 但不确定如何在s3和Kubernetes之间复制。在谷歌搜索这个问题时,我遇到了skbn库,但我想知道是否有一种方法可以在不安装新软件包的情况下实现这一点。定义一个安装了,并使用aws CLI或其他工具从S3存储桶中

我知道如何在本地计算机和Kubernetes容器之间复制文件:

kubectl cp /local_dir/some_file container:/remote_dir/some_file
使用AWS CLI从s3存储桶到EC2:

aws s3 cp remote local
但不确定如何在s3和Kubernetes之间复制。在谷歌搜索这个问题时,我遇到了skbn库,但我想知道是否有一种方法可以在不安装新软件包的情况下实现这一点。

定义一个安装了,并使用aws CLI或其他工具从S3存储桶中检索文件并将其复制到PV。然后将此PV装入普通容器中,并相应地引用检索到的文件

如果您将initContainer配置为通过环境变量接受AWS Access&Secret Access密钥以及S3 Bucket,并在运行时传递这些密钥,则会获得额外的积分

或者,在将容器部署到Kubernetes之前,将文件作为CI/CD管道的一部分进行检索。并使用文件或块存储将它们相应地装入卷中

编辑:看起来也存在一个。但是,未激活,也不是由AWS正式创建的。我不建议使用它。尤其是当您可以将此过程作为管道或部署清单的一部分进行编码时

编辑2:我还不得不提到容器是无状态的,这可能就是你问这个问题的原因。虽然存在
kubectl cp
,但它大体上是一种将文件放入Kubernetes的非标准方式。通常,您可以通过使用由提供的PersistentVolume来实现这一点。对于Docker,执行后对操作系统所做的任何更改都不会持久化;当容器退出时,该层将被丢弃。因此,不要像虚拟机那样将文件复制到容器中,而是尝试使用卷装载来确保它们从一开始就存在