File Browser

File Browser是一款网页文件管理器,允许用户通过浏览器轻松管理和共享文件。使用英博云过程中,许多文件都需要上传到英博云存储卷中或从存储卷中下载文件。本文将指导您如何在英博云上部署和使用File Browser。

前提条件

  • 已创建集群,详情请参考:创建集群
  • 已创建PVC存储卷,详情请参考创建存储
  • 账户余额充足

通过kubectl命令行部署创建

前提:

  1. 已安装kubectl工具到本地。详情请参考:安装和设置 kubectlopen in new window
  2. 已通过 kubectl 连接目标集群。具体操作详情请参考:连接集群
  3. PersistentVolumeClaim:filebrowser挂载的共享存储卷大小,需要根据实际使用情况设置容量。
  4. Ingress Host:请输入自定义名称+集群的外网ingress,可通过对应集群详情页查看,如下图所示。
  1. 部署File Browser,示例文件 filebrowser-with-auth.yaml代码如下:
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: t128g
  namespace: default
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 128Gi
  storageClassName: shared-nvme-cn-beijing2
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: filebrowser
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: filebrowser
  template:
    metadata:
      labels:
        app: filebrowser
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: cloud.ebtech.com/cpu
                operator: In
                values:
                - amd-epyc-milan
      containers:
        - name: filebrowser
          image: filebrowser/filebrowser:latest
          ports:
            - containerPort: 8080
          volumeMounts:
            - mountPath: /srv
              name: filebrowser-storage
          args:
            - -r
            - /srv
            - --noauth
            - -p
            - "8080"
          resources:
            limits:
              cpu: 4
              memory: 8Gi
            requests:
              cpu: 4
              memory: 8Gi
      volumes:
        - name: filebrowser-storage
          persistentVolumeClaim:
            claimName: t128g
---
apiVersion: v1
kind: Service
metadata:
  name: filebrowser
  namespace: default
spec:
  type: ClusterIP  
  ports:
    - port: 9080
      targetPort: 8080
      protocol: TCP
  selector:
    app: filebrowser
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: filebrowser-ingress
  namespace: default
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
    - host: filebrowser-tenant-37343164-k8syqw-ingress-cn-regionxxx.eks.ebcloud.com  # Ingress Host
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: filebrowser
                port:
                  number: 9080  #  指向 Service 的 9080 端口
  1. 执行以下命令,部署yaml文件。
kubectl apply -f filebrowser-with-auth.yaml
  1. 执行以下命令,查看服务是否部署成功。
kubectl get pods -n default
kubectl get svc -n default
kubectl get pvc -n default

使用File Browser

  1. Web访问

在浏览器中打开部署yaml中的ingress host:filebrowser-tenant-37343164-k8syqw-ingress-cn-regionxxx.eks.ebcloud.com

  1. 修改默认语言

修改默认语言为中文,左侧导航栏Settings -> Profile Settings -> Language中文(简体)-> UPDATE。

  1. 上传文件 上传文件,在我的文件页面右上角单击上传图标。
  1. 下载文件 下载文件,支持将文件打成压缩包下载,目前支持zip、tar等压缩格式,在我的文件页面右上角单击下载图标。