花式玩转FastDFS

花式玩转FastDFS

  • 花式玩转fastdfs
    • 饮水思源
    • 个人实验记录
    • k8s布署版本
    • 验证

花式玩转fastdfs

本文主要想制作一个产品级的fastdfs的产品,因为源程序,需要做很多的安装与配制,最好的方式就是将其制作成docker,直接使用;或者在docker的基础上,布署在k8s里,这样,使用起来,只需要一行命令,或者 一个yaml文件(for k8s),就可以解决这个问题。

饮水思源

网络上有许多的教程,但很多都已经比较老了,比如在docker上排名第一的
docker.io/season/fastdfs 居然版本是3.X,这就比较过时了。其实我们只要知道其源地址就可以了。
https://github.com/happyfish100/fastdfs
而在此基础上,做得比较好的docker有:
docker.io/ygqygq2/fastdfs-nginx
但依然有不少的缺陷,需要自己在理解的基础上去进行配置与调试,估计作者也是给自己用的,自己知道自己的问题,所以自己用就没有什么关系,别人用起来,必须要花一番功夫啊!

个人实验记录

花式玩转FastDFS_第1张图片

实验的时候,需要在docker里进行调试,制作 好了docker版本,才可以为k8s布署所用。
docker network create fastdfs-net
docker run -dit --network=fastdfs-net --name tracker -p 22122:22122 -p 8081:8080 dualvenregistry:5000/tracker:v6 tracker
docker run -dit --network=fastdfs-net --name storage601 dualvenregistry:5000/tracker:v6 storage 601
docker run -dit --network=fastdfs-net --name storage602 dualvenregistry:5000/tracker:v6 storage 602
在docker环境里,想到一键布署,而不需要手动更改配置,比如需要修改在tracker的nginx里的 storageX的反向地址,这里,因为他们共同处于一个网桥里,所以可以用docker name代替主机名与IP.
同样 这也引起了一个问题,就是在storage没有起来时,tracker的nginx会启动失败,因为找不到storageX;如果先启动storage, fdfs_storage会因为找不着tracker 22122的端口而启动失败。
采用的方案,就是先启动storageX,再启动tracker,这样 tracker的fdfs_tracker与nginx都顺利启动;再使用命令启动一下storageX里的fdfs_storage程序,这样就不用手动更改配制了(主要是nginx里的反向storageX地址)。
附下命令:
docker exec -it storage601 fdfs_storaged /etc/fdfs/storage.conf start
docker exec -it storage602 fdfs_storaged /etc/fdfs/storage.conf start
而里面的Nginx也要重新启动下
docker exec -it storage601 nginx -s stop
docker exec -it storage601 nginx

k8s布署版本

花式玩转FastDFS_第2张图片
我们制作了service 及deploy for tracker;为storage制作 了pod与service.
使用service的原因,一是方便deployment tracker,实现负载均衡,自由扩展;当然storage也可以如此,我们为了实验方便,仅为storage做了service.
全部使用service,是为了让这些服务都拥有cluster IP,这样,在cluster内可以自由访问,多机之间也是可以的;同时使用coredns + canal,这样在集群类使用DNS,这样就可以不使用IP访问 ,IP在集群内自由分配,所以我们在yaml文件里,只需要通过服务的name互相便可以相互访问 。
当然我们最后为tracker -service指定了NODEtype类型,这样方便外部的fdfs-client能访问它,而tracker与storage,只需要有内部路由就可以了,使用集群内的clusterIP及service name就可以了,这两者是对等的;这样的布署也将这些服务全部封闭在了集群内部,提高了安全性!
最后,我们将fdfs-client也布署在了集群内,这样,连tracker的nodetype也省去了,仅需要fdfs-client自己暴露自己的服务给外面就可以了。

验证

花式玩转FastDFS_第3张图片
我们在10.30.40.10及10.60.254.252上布署了docker版本,后来又在10.60.254.252上布署了k8s版本;分别通过10upload2Fdfs.py,252upload2Fdfs.py,k8supload2Fdfs.py进行图片上传进行验证。
在这里插入图片描述
args: [“tracker”,“10.60.2.199”] 后面增加的ip是之后的访问地址。
增加了第三个参数 "only601"如果加了这个,就只布署一台storage.

你可能感兴趣的:(服务容器,DOCK)