一、fastdfs简介
-
fastDFS 是以C语言开发的一项开源轻量级分布式文件系统,他对文件进行管理,主要功能有:文件存储,文件同步,文件访问(文件上传/下载),特别适合以文件为载体的在线服务,如图片网站,视频网站等
- 分布式文件系统:基于客户端/服务器的文件存储系统。对等特性允许一些系统扮演客户端和服务器的双重角色,可供多个用户访问的服务器,比如,用户可以“发表”一个允许其他客户机访问的目录,一旦被访问,这个目录对客户机来说就像使用本地驱动器一样、
- FastDFS由跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)构成。
二、kubernetes部署fastdfs
1. 创建命名空间
cat fastdfs.yaml
---
apiVersion: v1
kind: Namespace
metadata:
# 创建命名空间的名
name: fastdfs
labels:
name: fastdfs
# kubectl apply -f fastdfs.yaml
2. 给fastdfs分配持久存储卷并且分配存储卷大小。
# cat fastdfs-pvc.yaml
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: fastdfs-pvc
namespace: fastdfs
spec:
accessModes:
- ReadWriteMany
storageClassName: jyy-cephfs-sc
resources:
requests:
storage: 2Gi
# kubectl apply -f fastdfs-pvc.yaml
三、fastdfs部署分为两部分,一个是tracker一个是storage,下面我们先部署tracker
1. 创建tracker StatefulSet 以及创建tracker-service
# cat tracker.yaml
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
namespace: fastdfs
labels:
app: tracker
#statefulset名为tracker创建的pod名以该名为基础按顺序为tacker-0 1 2 3...
name: tracker
spec:
replicas: 1
selector:
matchLabels:
app: tracker
#serviceName名为tracker不要与statefulset名混淆,pod的解析需要在pod名后加该名例如tracker-0.tracker.default即$pod名.$serviceName.$命名空间
serviceName: "tracker