kubenertes部署FastDFS集群,(tracker-2storage)*2

本文介绍了在Kubernetes(K8S)平台上部署FastDFS遇到的挑战,包括存储节点注册问题、存活性探测配置以及数据一致性保证。通过创建Headless Service和NodePort Service解决跨Pod通信,并采取特定的存储和网络配置来确保服务稳定。然而,作者认为当前版本的FastDFS并不适合K8S环境,并建议尝试其他分布式文件系统替代方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍

FastDFS是一款开源的轻量级分布式文件系统纯C实现,支持Linux、FreeBSD等UNIX系统类google FS,不是通用的文件系统,只能通过专有API访问,目前提供了C、Java和PHP API为互联网应用量身定做,解决大容量文件存储问题,追求高性能和高扩展性FastDFS可以看做是基于文件的key value pair存储系统,称作分布式文件存储服务更为合适.

tracker-server:
跟踪服务器, 主要做调度工作, 起负载均衡的作用。 在内存中记录集群中所有存储组和存储服务器的状态信息, 是客户端和数据服务器交互的枢纽。 相比GFS中的master更为精简, 不记录文件索引信息, 占用的内存量很少。

storage-server:
存储服务器( 又称:存储节点或数据服务器) , 文件和文件属性( metadata) 都保存到存储服务器上。 Storage server直接利用OS的文件系统调用管理文件。

group:
组, 也可称为卷。 同组内服务器上的文件是完全相同的 ,同一组内的storage server之间是对等的, 文件上传、 删除等操作可以在任意一台storage server上进行 。

meta data:
meta data:文件相关属性,键值对( Key Value Pair) 方式,如:width=1024,heigth=768 。

部署

由于应用全部迁移到kubernetes平台部署,之前用的fastdfs也不例外需要进行迁移,中间遇到的问题很多,后面会提到,总之fastDFS当前版本不是很适合在K8S平台部署,官方好像也很久没更新了。。。可以理解为不适合吧
本次部署的版本为6.0.7,镜像基于alpine制作。部署1个tacker和2个storage,部署2套。

先部署headlessservice,给后面的statefulset服务用.这里有一点,storage在注册到tracker的时候默认是使用的podIP而不会使用clusterIP,所以storage是支持使用域地址的,因而直接使用了无头的网络服务,通过域地址链接到tracker。docker上部署的时候一般使用–network=host,也是这个原因。

apiVersion: v1
kind: Service
metadata:
  name: fdfs1
  labels:
    name: fdfs1
spec:
  clusterIP: None
  ports:
  - name: tracker
    port: 22122
    targetPort: 22122
  selector:
    app: fdfs1
---

apiVersion: v1
kind: Service
metadata:
  name: fdfs2
  labels:
    name: fdfs2
spec:
  clusterIP: None
  ports:
  - name: tracker
    port: 22122
    targetPort: 22122
  selector:
    app: fdfs2

再创建nodePort给外网访问storage的文件时使用

apiVersion: v1
kind: Service
metadata:
  name: fdfs1-ngx
  labels:
    app: fdfs1-ngx
spec:
  type: NodePort
  ports:
  - name: group1
    port: 8888
    targetPor
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值