为了账号安全,请及时绑定邮箱和手机立即绑定

aws eks 挂载 s3遇到的坑记录

标签:
AWS Kubernetes

最近公司里用到了aws的eks做集群,但是挂在需要s3(s3fs) 于是找了各种资料,即便是官方的文档,也有很多坑,所以我把在aws的eks里挂在 s3fs的方法在这里总结一下,并指出哪里有坑:


首先 官方文档的参考代码是 https://github.com/freegroup/kube-s3

进去之后 会看到里边有个yaml文件夹,其他的都不用看,完全没有卵用. 在yaml里 有个 configmap_secrets_template.yaml, 按照他的要求 把aws里你提前创建好的 bucket name 和 你对应 aws的 accessId 和 secretkey 添加好, 接下来 只需要 kubect create -f configmap_secrets_template.yaml 即可


接下来 要修改 daemonset.yaml 在这个文件中,如果你是16以上的k8s版本,在apiVersion 里 要改成 apps/v1,接下来是 他为了兼容老版本 在sepc中省略了 selector, 所以我们需要加上如下内容(在spec下,和template同级):

selector:

    matchLabels:

        app: s3-provider


完成以上2个修改后,还需要修改镜像, 镜像他写的是 freegroup/kube-s3   这样写默认是lastest, 但实际上 这景象根本没有lasetest版本!!以至于我们拥有pull不下来镜像,所以需要指定版本好: 

freegroup/kube-s3:1.13

再修改了以上三处之后, 执行 kubectl create -f daemonset.yaml 恭喜,终于成功了, 查看pod也都可以running了.接下来我们可以使用他yaml里的 example_pod.yaml 来测试: kubectl create -f example_pod.yaml 然后进入pod  kubectl exec -it test-pd -- /bin/sh 然后 cd /var/s3 && ls 你会发现你在aws上定义好的bucket中的数据都挂在进来了, 为什么是 /var/s3这个地址呢? 是因为pod的yaml中volumeMount挂载到了这个地方, 对应的volume的地址 我们可以在daemonset里修改,在pod的同步调整就好. 以上就是aws eks 挂在s3的整个过程. 不过官方建议使用aws的sdk调用bucket 因为s3速度效率较低.


最后,虽然我的同事看不到,但在这里向他表示感谢,我当时卡在daemonset的位置 ,搞了很久没出来,人家一会儿就搞定了, 唉 挫败感啊~不过也证明了自己还差得远. 好了. 这条手记就到这里了. 如果有用 欢迎点赞分享~哈哈哈


··································

欢迎关注课程:

《Django入门到进阶-更适合Python小白的系统课程》

  金职位 Python工程师2020版


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消