一、kkfileView介绍

        KKFileView 是一款开源免费、跨平台的在线文件预览解决方案,核心解决各类文件无需下载即可在线查看的需求,适配多场景系统集成。

关键特点

  • 支持格式丰富,覆盖办公文档(Word、Excel、PPT 等)、图片、PDF、音视频、压缩包等主流格式。
  • 部署简单,可独立部署为服务,也能快速集成到 Java、Vue 等各类现有系统,依赖项少。
  • 开源可扩展,基于 MIT 协议,源码可自由获取,支持根据业务需求二次开发定制。
  • 跨平台兼容,支持 Windows、Linux、MacOS 等多种操作系统,无需额外适配。

二、挂载配置文件configmap

        kkfileview挂载配置的方式有两种,一种是直接使用现有的application.properties文件,另一种是编写kkfileview-conf.yaml文件。这里介绍直接挂载application.properties文件。

        通过kubectl create configmap命令,将本地application.properties文件直接导入为 ConfigMap:

kubectl create configmap kkfileview-config --from-file=application.properties=./application.properties -n zhongchuan141

三、创建deployment.yaml和service.yaml

         deployment.yaml文件,用于创建kkfileview的控制器和对应的pod容器,在文件中指明了控制器deployment的资源大小、标签、创建的容器镜像、启动命令等,后续对容器水平扩容时可对deployment.yaml文件进行修改。

         service.yaml文件,用于负责负载均衡和服务发现,暴露kkfileview的端口号和访问模式,其中,端口号可分pod容器对service暴露的端口,service对k8s集群暴露的端口,以及访问模式。
 

apiVersion: apps/v1
kind: Deployment
metadata:
  name: zhongchuan141-kkfileview
  namespace: zhongchuan141
spec:
  replicas: 1
  selector:
    matchLabels:
      app: zhongchuan141-kkfileview
  template:
    metadata:
      labels:
        app: zhongchuan141-kkfileview
    spec:
      containers:
      - name: zhongchuan141-kkfileview
        image: dockerhub.kubekey.local/tiangang/kkfileview:4.1.0
        ports:
        - containerPort: 8012
        resources:
          limits:
            cpu: "1"
            memory: "2Gi"
          requests:
            cpu: "500m"
            memory: "1Gi"
        volumeMounts:
        - name: kkfileview-config
        mountPath: /opt/kkfileview/config/application.properties
        subPath: application.properties
      volumes:
      - name: kkfileview-config
        configMap:
          name: kkfileview-config
---
apiVersion: v1
kind: Service
metadata:
  name: zhongchuan141-kkfileview
  namespace: zhongchuan141
spec:
  selector:
    app: zhongchuan141-kkfileview
  ports:
  - port: 8012
    targetPort: 8012
    nodePort: 31012
  type: NodePort

四、部署验证

        访问节点IP:<对外暴露的端口号>/filepreview/index 。效果图如下:

更多推荐