其他分享
首页 > 其他分享> > k8s部署vsftp 支持多线程下载

k8s部署vsftp 支持多线程下载

作者:互联网

ftp image

vsftpd

具体参数参考: https://github.com/fauria/docker-vsftpd

ftp模式

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式

概括:

主动模式: 服务器向客户端敲门,然后客户端开门
被动模式: 客户端向服务器敲门,然后服务器开门

docker 部署

一般选用被动模式,服务端打开端口这样比较容易控制

docker run -d -v /my/data/directory:/home/vsftpd \
-p 20:20 -p 21:21 -p 21100-21110:21100-21110 \
-e FTP_USER=myuser -e FTP_PASS=mypass \
-e PASV_ADDRESS=127.0.0.1 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
--name vsftpd --restart=always fauria/vsftpd

在本地运行以上命令可以快速启动ftp服务,注意修改一下本地的挂载目录,另外环境变量PASV_ADDRESS如果是在本地无需修改,如果部署在其他服务器或者暴露在公网,要修改为对应的host
ip 或 公网ip
有些文章中说需要进入到容器容器去修改或者增加一些用户信息,其实这里通过环境变量就已经搞定。docker部署方式相对简单很多。

k8s部署

ftp 需要被动模式
k8s svc Headless(因为k8s kube proxy 转发不确定确定哪些端口是需要转发的,所有只能通过k8s dns 直接解析podIP, 而不是clusterIP)

---
kind: Deployment
apiVersion: apps/v1
metadata:
  labels:
    app: ftp
  name: ftp
spec:
  selector:
    matchLabels:
      app: ftp
  template:
    metadata:
      labels:
        app: ftp
    spec:
      #使用本地服务器端口
      hostNetwork: true
      containers:
      - name: ftp-container
        image: fauria/vsftpd
        ports:
        - containerPort: 21
        - containerPort: 31110
        - containerPort: 31111
        - containerPort: 31112
        - containerPort: 31113
        - containerPort: 31114
        - containerPort: 31115
        env:
        - name: FTP_USER
          value: "admin"
        - name: FTP_PASS
          value: "admin&1234"
        - name: PASV_MIN_PORT
          value: "31110"
        - name: PASV_MAX_PORT
          value: "31115"
        #走公网的填写公网IP,内网注释掉改部分,取消下面注释的自动获取方法
        # - name: PASV_ADDRESS
        #   value: 10.0.1.133
        - name: PASV_ADDRESS
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
        volumeMounts:
        - name: ftp-dir
          mountPath: /home/vsftpd/admin/
      volumes:
      - name: ftp-dir
        hostPath:
          path: /opt/vsftpd-test
          type: DirectoryOrCreate

ftp 多线程下载

ftp 支持多线程下载,这个得看你被动连接端口开放了多少个,例如上方设置除了 21端口外
开放了6个连接端口,我们下载时,就可以使用最多6线程.

axel -a -n 5 ftp://"admin@admin&1234":192.168.50.134/admin/a.zip

参考文章:http://bamboox.online/2020/03/28/ftp-on-k8s/

标签:ftp,多线程,name,端口,PASV,vsftp,服务器,k8s,客户端
来源: https://blog.csdn.net/weixin_45444133/article/details/119203342