当前位置: 首页 > article >正文

单机部署kubernetes环境下Overleaf-基于MicroK8s的Overleaf应用部署指南

在本文中,我们将探讨如何使用MicroK8s在本地或云环境中快速部署Overleaf应用。MicroK8s是一个轻量级的Kubernetes发行版,它为开发者提供了一个简单的方式来部署和管理容器化应用。

需要使用Kompose转换Overleaf官方Docker Compose配置得到适用于kubernetes的部署格式

脚本和配置文件:GitHub - mcxiaoxiao/latexhub: Overleaf deployment for microk8s environment. An out-of-the-box solution that can be deployed directly on a single machine.

创建命名空间

我们为Overleaf应用创建一个单独的命名空间,以便于管理和隔离资源。

microk8s kubectl create namespace overleaf

添加Helm仓库

接下来,我们添加Bitnami的Helm仓库,提供MongoDB和Redis

microk8s helm repo add bitnami https://charts.bitnami.com/bitnami
microk8s helm search repo bitnami

部署MongoDB和Redis

使用Helm部署MongoDB和Redis服务,并应用预先配置的values.yaml文件来定制部署。

microk8s helm install mongo bitnami/mongodb --namespace overleaf --values ./mongo/values.yaml
microk8s helm install redis bitnami/redis --namespace overleaf --values ./redis/values.yaml

启用Ingress(可选)

为了使Overleaf应用可从外部访问,我们需要启用Ingress。

microk8s enable ingress

配置持久卷

我们定义了三个PersistentVolumes(PVs),分别提供5Gi和10Gi的存储空间,这些存储空间使用hostPath类型,适用于测试环境,但在生产环境中,我们推荐使用更可靠的存储解决方案。

microk8s kubectl apply -f overleaf-storageclass.yaml
microk8s kubectl apply -f overleaf-pv.yaml

部署Overleaf应用

最后,我们部署Overleaf应用,并配置相关的PersistentVolumeClaims(PVCs)和其他必要的资源。

microk8s kubectl apply -n overleaf -f ./overleaf/overleaf-pvc.yaml -f ./overleaf/overleaf-variables.yaml -f ./overleaf/overleaf-deployment.yaml -f ./overleaf/overleaf-service.yaml

访问应用

如果您需要通过HTTPS访问应用,可以获取证书并创建相应的secret。然后,取消注释并应用Ingress配置以暴露应用。

# microk8s kubectl create secret tls overleaf-tls-secret --cert=/tlskeys/public.crt --key=/tlskeys/private.key --namespace=overleaf
# microk8s kubectl apply -f tls-ingress.yaml

此时查看所有命名空间pods转发overleaf的80端口(没有配置ingress)或者直接进入ip/域名,访问/launchpad可以设置管理员邮箱密码

开箱即用,欢迎star⭐~

GitHub - mcxiaoxiao/latexhub: Overleaf deployment for microk8s environment. An out-of-the-box solution that can be deployed directly on a single machine.


http://www.kler.cn/a/408366.html

相关文章:

  • pytorch自定义算子导出onnx
  • Swift 实现查找链表入环点:快慢指针法
  • C++初阶(十五)--STL--list 的深度解析与全面应用
  • Android 设备使用 Wireshark 工具进行网络抓包
  • 【Django】测试
  • 如何在 UniApp 中实现 iOS 版本更新检测
  • windows vscode C++ 简明教程
  • oneplus6线刷、trwp、magisk(apatch)、LSPosed、Shamiko、Hide My Applist
  • 【计算机网络】计算机网络概述
  • 40分钟学 Go 语言高并发实战:高性能缓存组件开发
  • 前端HTML
  • 深度学习中的Mosaic数据增强
  • CentOS 7 防火墙开启 ,没有开22端口,为什么没有被限制
  • MyBatis 操作数据库(进阶)
  • C++详细笔记(七)(string底层初步实现)
  • 曲谱转换成音频
  • 【免费】高比例风电电力系统储能运行及配置分析【火电机组、风能、储能】
  • 企业数智化新纪元,安全体系保驾护航
  • 蓝桥杯嵌入式再学习(4)led的点亮
  • 淘宝接口高并发采集优化之道:提升数据获取速度与质量
  • RTOS学习笔记---任务的管理
  • jsencrypt 库作用
  • 【设计模式系列】责任链模式(十六)
  • Jedis存储一个以byte[]的形式的对象到Redis
  • 模型压缩——如何进行知识蒸馏?
  • kotlin 的循环