docker、kubernetes安装部署fastdfs文件集群系统

一、docker部署fastdfs

fastdfs 的Dockerfile

FROM centos:7

LABEL maintainer "[email protected]"

ENV FASTDFS_PATH=/opt/fdfs \
    FASTDFS_BASE_PATH=/var/fdfs \
    PORT= \
    GROUP_NAME= \
    TRACKER_SERVER=

  

#get all the dependences
RUN yum install -y git gcc make

#create the dirs to store the files downloaded from internet
RUN mkdir -p ${FASTDFS_PATH}/libfastcommon \
 && mkdir -p ${FASTDFS_PATH}/fastdfs \
 && mkdir ${FASTDFS_BASE_PATH}

#compile the libfastcommon
WORKDIR ${FASTDFS_PATH}/libfastcommon

RUN git clone --branch V1.0.36 --depth 1 https://github.com/happyfish100/libfastcommon.git ${FASTDFS_PATH}/libfastcommon \
 && ./make.sh \
 && ./make.sh install \
 && rm -rf ${FASTDFS_PATH}/libfastcommon

#compile the fastdfs
WORKDIR ${FASTDFS_PATH}/fastdfs

RUN git clone --branch V5.11 --depth 1 https://github.com/happyfish100/fastdfs.git ${FASTDFS_PATH}/fastdfs \
 && ./make.sh \
 && ./make.sh install \
 && rm -rf ${FASTDFS_PATH}/fastdfs


EXPOSE 22122 23000 8080 8888
VOLUME ["$FASTDFS_BASE_PATH", "/etc/fdfs"]   

COPY conf/*.* /etc/fdfs/

COPY start.sh /usr/bin/

#make the start.sh executable 
RUN chmod 777 /usr/bin/start.sh

ENTRYPOINT ["/usr/bin/start.sh"]
CMD ["tracker"]

docker-compose.yml

version: '3'
services:
  tracker:
    container_name: tracker
    image: luhuiguo/fastdfs
    command: tracker
    network_mode: host
    volumes:   
      - /var/fdfs/tracker:/var/fdfs    
  storage0:
    container_name: storage0
    image: luhuiguo/fastdfs
    command: storage
    network_mode: host  
    environment:
      - TRACKER_SERVER=10.1.5.85:22122
    volumes: 
      - /var/fdfs/storage0:/var/fdfs
  # storage1:
  #   container_name: storage1
  #   image: luhuiguo/fastdfs
  #   command: storage
  #   network_mode: host  
  #   environment:
  #     - TRACKER_SERVER=10.1.5.85:22122
  #   volumes: 
  #     - /var/fdfs/storage1:/var/fdfs
  #  storage2:
  #   container_name: storage2
  #   image: luhuiguo/fastdfs
  #   command: storage
  #   network_mode: host  
  #   environment:
  #     - TRACKER_SERVER=10.1.5.85:22122
  #     - GROUP_NAME=group2
  #     - PORT=24000
  #   volumes: 
  #     - /var/fdfs/storage2:/var/fdfs           

二、kubernetes部署fastdfs

fastdfs-deploy.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
    name: tracker-deploy
    namespace: paas-basic
    labels:
        name: tracker-deploy
spec:
    replicas: 1
    template:
        metadata:
            labels:
                app: tracker
        spec:
            nodeSelector:
              fastdfs: "tracker"
            terminationGracePeriodSeconds: 0
            containers:
            - name: tracker
              image: luhuiguo/fastdfs
              imagePullPolicy: Always
              ports:
              - containerPort: 22122
              - containerPort: 23000
              - containerPort: 8080
              - containerPort: 8888
              volumeMounts:
              - name: tracker-volume
                mountPath: /var/fdfs
              command: ["/usr/bin/start.sh","tracker"]
            volumes:
            - name: tracker-volume
              hostPath:
                path: /home/data/fastdfs/tracker

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
    name: storage0-deploy
    namespace: paas-basic
    labels:
        name: storage0-deploy
spec:
    replicas: 1
    template:
        metadata:
            labels:
                app: storage0
        spec:
            nodeSelector:
              fastdfs: "storage0"
            terminationGracePeriodSeconds: 0
            containers:
            - name: storage0
              image: luhuiguo/fastdfs
              imagePullPolicy: Always
              ports:
              - containerPort: 22122
              - containerPort: 23000
              - containerPort: 8080
              - containerPort: 8888
              volumeMounts:
              - name: storage0-volume
                mountPath: /var/fdfs
              env:
              - name: TRACKER_SERVER
                value: 10.96.0.110:22122
              command: ["/usr/bin/start.sh","storage"]
            volumes:
            - name: storage0-volume
              hostPath:
                path: /home/data/fastdfs/storage0

fastdfs-service.yaml

apiVersion: v1
kind: Service
metadata:
    name: tracker
    labels:
        app: tracker
    namespace: paas-basic
spec:
    selector:
        app: tracker
    type: NodePort
    clusterIP: 10.96.0.110
    ports:
    - name: "22122"
      port: 22122
      targetPort: 22122
      protocol: TCP
    - name: "23000"
      port: 23000
      targetPort: 23000
      protocol: TCP
    - name: "8080"
      port: 8080
      targetPort: 8080
      protocol: TCP
    - name: "8888"
      port: 8888
      targetPort: 8888
      protocol: TCP

你可能感兴趣的:(IT)