使用Helm部署Wikijs

news2024/10/9 10:22:37

使用 Helm 部署 Wiki.js

📚️ 参考文档:

Wiki.js 官方文档 - 安装 - Kubernetes

Wiki.js 使用 Helm 安装

Wiki.js 官方文档 - 安装 - 侧加载

官方教程

Kubernetes

开始使用 Helm Chart 在 Kubernetes 上安装

先决条件
  • Kubernetes 集群
  • Helm
  • PostgreSQL 数据库
❗️ 重要
  • 您必须先部署单个实例才能设置应用程序。设置完成后,您可以将副本数量增加到任意数量。
  • 尽管wiki.js支持其他数据库引擎,但多副本要求必须使用PostgreSQL
安装 Helm Chart

有关详细的安装说明,请参阅wiki.js helm repo。

介绍

此图表使用Helm包管理器在Kubernetes群集上启动wiki.js部署。

它还可选地将PostgreSQL打包为数据库,但您可以自由携带自己的数据库。

先决条件
  • 如果您想要数据持久性,则需要由基础设施中的PV 供应商支持(启用持久存储)
安装 Chart

要安装带有my-release 发布名称的 chart,请在此 (helm) 目录运行以下情况:

📚️ 参考文档:

Wiki.js helm chart git 仓库地址

需要先将该 Git 仓库 clone 下来, 并跳转到 (helm) 目录, 然后执行下面的命令.

使用 Helm3:

$ helm install my-release .

使用 Helm2:

$ helm install --name my-release . 

该命令在Kubernetes群集上的default 租户中部署wiki.js。[[使用 Helm 部署 Wikijs#配置]] 部分列出了安装过程中可以配置的参数。

提示: 使用helm list列出所有版本

卸载 Chart

卸载/删除my-release部署:

$ helm delete my-release

命令会删除与 该 Chart 关联的所有 Kubernetes 组件并删除该 release。

警告:数据库的 PVC 不会自动删除。它们需要手动删除

$ kubectl delete pvc/data-wiki-postgresql-0
配置

下表列出了维基图表的可配置参数.js及其默认值。

参数描述默认
image.repositorywiki.js imagerequarks/wiki
image.tagwiki.js image taglatest
imagePullPolicy镜像拉取策略IfNotPresent
replicacount要运行的wiki.js服务pod数量1
resources.limitswiki.js服务资源限制nil
resources.requestswiki.js服务资源请求nil
nodeSelectorwiki.js 的 nodeSelector{}
affinitywiki.js pod分配的亲和力设置{}
schedulerNamewiki.js pod 备用调度器的名称nil
tolerationswiki.js 吊舱分配的容忍标签[]
ingress.enabled启用入口控制器资源false
ingress.annotations入口注释{}
ingress.hosts入口规则列表[{"host": "wiki.local", "paths": ["/"]}]
ingress.tls入口 TLS 配置[]
postgresql.enabled是否部署 postgresql(见下文)true
postgresql.postgresqlDatabasepostgresql数据库名称wiki
postgresql.postgresqlUserpostgresql 用户名postgres
postgresql.postgresqlHostpostgresql 主机nil
postgresql.postgresqlPasswordpostgresql 密码nil
postgresql.postgresqlPortpostgresql 端口5432
postgresql.persistence.enabled使用 PVC 启用 postgresql 持久性true
postgresql.persistence.existingClaim为 postgresql 提供已有PersistentVolumeClaimnil
postgresql.persistence.storageClasspostgresql PVC存储类(例如:nfs)nil
postgresql.persistence.sizepostgresql PVC 存储大小需求8Gi

使用--set key=value[,key=value]参数指定每个参数来 helm install。例如,

$ helm install --name my-release \
  --set postgresql.persistence.enabled=false \
   . 

或者,在安装 chart 时可以提供指定上述参数值的 YAML 文件。例如,

$ helm install --name my-release -f values.yaml . 

提示:您可以使用默认values.yaml

PostgreSQL

默认情况下,作为Chart 的一部分安装PostgreSQL。

使用外部 PostgreSQL 服务器

要使用外部PostgreSQL服务器,设置postgresql.enabledfalse然后设置postgresql.postgresqlHostpostgresql.postgresqlPassword。其他选项postgresql.postgresqlDatabasepostgresql.postgresqlUser(和)postgresql.postgresqlPort可能也需要从其默认值中更改。

您还需要在部署中添加以下 Helm 模板:

kind: Secret
apiVersion: v1
metadata:
  name: {{ template "wiki.postgresql.secret" . }}
data:
  {{ template "wiki.postgresql.secretKey" . }}: "{{ .Values.postgresql.postgresqlPassword | b64enc }}"
持久化

PVC 用于在整个部署中保留数据。请参阅 [[使用 Helm 部署 Wikijs#配置]] 部分以配置 PVC 或禁用持久化。

Ingress

此Chart 为Ingress 资源提供支持。如果你有一个可用的 ingress 控制器,如Nginx 或 Traefik,你可能想设置ingress.enabled为真,并为URL选择一个ingress.hostname。然后,您应该能够使用该地址访问安装。

离线环境下使用 Helm 部署 Wiki.js

📚️ 参考文档:

Wiki.js 官方文档 - 安装 - Kubernetes

Wiki.js 使用 Helm 安装

Wiki.js 官方文档 - 安装 - 侧加载

概述

根据官方文档和 GitHub issues 的分析. 离线环境下, 那么需要将从internet下载的数据侧载(sideload)。

这是通过手动下载一组文件并将它们放置在wiki安装中的特定目录来实现的。这些文件将在初始化期间导入。

在Wiki.js安装文件夹的path data/sideload中创建一个新文件夹。

例如,如果您的wiki安装在路径/wiki (wikijs的docker image 里wiki的安装路径为 /wiki),那么您需要在路径/wiki/data/sideload 创建一个文件夹.

Locales

为了安装locale包,您需要主locale文件+至少一个locale包文件

ℹ️ 信息:

这些文件可以从https://github.com/Requarks/wiki-localization下载。这些档案每天晚上都是最新的。

主文件

主文件locales.json 包含有关所有可用语言的信息,并且必须安装。

将此文件放在先前创建的sideload 文件夹中。

Locale 包

语言环境软件包文件xx.jsonxx-zz.json 包含所选语言的所有翻译。 您可以同时加载任意数量的语言环境。

⚠️ 警告:

英语包en.json是必须的,因为这是安装期间的默认语言。 之后您可以更改语言.

将文件放在先前创建的sideload 文件夹中主文件的旁边。 现在,您的文件夹中应该具有locales.jsonen.json和任何其他语言。

Sideload

⚠️ 警告:

必须先修改 wiki.js 配置文件: config.yml. 增加如下一行: offline: true

运行Wiki.js(如果已经在运行,则重新启动进程),自动加载位于data/sideload 文件夹中的文件。

步骤

📝 备注:

由于笔者时间不足, 就不将额外的步骤整合到 helm chart 中去了.

以下步骤假设:

  1. 已安装 helm
  2. 已 clone wikijs的git 仓库
  3. 已 跳转到 helm/ 目录下
  1. 通过 helm 安装 wiki.js 和 postgresql:

    helm install wikijs . -n wiki --set image.tag=2,postgresql.persistence.storageClass=nfs-fast

    配置说明如下, 创建好了 helm 会有相关成功的提示, 此时可以使用, 但是加载不到 locale 语言包. 下一步需要 通过 sideload 加载语言包.

    1. wiki 租户下进行安装;
    2. wiki.js 的镜像版本tag 为2, 保证不会因为选择latest 标签, 导致wiki.js 突然从2 升级到3, 导致服务异常;
    3. postgresql的持久化存储的storageClassnfs-fast, 通过它自动申请存储.
  2. 因为需要 sideload. 需要修改config.yml, 通过如下 ConfigMap 的方式修改. 步骤如下:

    1. 创建如下ConfigMap - wiki-config, 相比默认的只增加了一行:

      image-20210227232511340

    2. 在 wikijs 的 Deployment中, 做如下修改, 将上边的 ConfigMap 通过 SubPath 挂载到指定位置

      image-20210227233052680

  3. 因为需要 sideload, 需要创建 data/sideload 文件夹, 并将 locales 文件放到该目录. 通过 PVC 实现

    1. 申请个50M 左右的 PVC - sideload-data (步骤略)

    2. 将 PVC 挂载到 wikijs Deployment指定目录:

      image-20210227233052680

    3. 再将下载好的locales.json, en.jsonzh.json放到容器中的指定目录: /wiki/data/sideload. 如下:

      image-20210227234116239

  4. 待 wikijs Deployment重启好之后, 就可以进入页面进行安装. 分别填入:

    1. 管理员邮箱
    2. 管理员密码, 再次确认管理员密码
    3. wikijs 站点的 URL
    4. 就会自动安装配置完成.
  5. 进入之后就可以在这里配置中文:

    image-20210227233926145

  6. 至此, 离线环境下使用 Helm 部署 Wiki.js 完成. 🎉🎉🎉

总结

相比在线环境, 多出了如下步骤:

  1. ConfigMap 通过 SubPath 方式挂载wiki.js 的配置文件 config.yml, 配置文件多了一句: offline: true
  2. 申请一个新的PVC, 挂载到/wiki/data/sideload, 并将 locales 相关文件放进去.

离线环境下 在OpenShift 中使用 Helm 部署 Wiki.js

ℹ️ 信息:

OpenShift 4.4+ 版本支持 Helm3

OpenShift 中, 对权限要求比较严格, 最简单的适配步骤, 就是将 wiki.js 所用的 ServiceAccount 权限放开.

相比上一节, 多出来的, 或者有调整的具体操作如下:

  1. 通过 helm3 安装:

    helm install wikijs . -n wiki --set image.tag=2.5,postgresql.serviceAccount.enabled=true,postgresql.serviceAccount.name=wikijs,postgresql.persistence.storageClass=nfs-fast

    ℹ️ 说明如下:

    1. wikijs 安装的时候就是用的 wikijs 这个 ServiceAccount, 为了简化权限步骤, postgresql 也用这个 ServiceAccount
    2. 具体的参数就是: postgresql.serviceAccount.enabled=true,postgresql.serviceAccount.name=wikijs
  2. wikijs 这个用户赋权SCC: anyuid: oc adm policy add-scc-to-user anyuid -z wikijs -n wiki

  3. 其他步骤都和上一节一致.

总结

通过这篇文章的介绍, 可以看出 Wiki.js 功能还是很强大的, 值得一用.

在 Kubernetes 中用 helm 部署, 直接使用官方的最简命令即可;

在离线环境下的 Kubernetes 中用 helm 部署, 需要多2个步骤:

  1. ConfigMap 通过 SubPath 方式挂载wiki.js 的配置文件 config.yml, 配置文件多了一句: offline: true
  2. 申请一个新的PVC, 挂载到/wiki/data/sideload, 并将 locales 相关文件放进去.

在离线环境下的 OpenShift 中用 helm 部署, 由于权限限制严格, 需要调整 ServiceAccount 并授予更高权限.

🎉🎉🎉

三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/135761.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实习------数据库进阶

B树索引 什么是索引? MySQL官方对索引的定义为:索引就是用于实现数据的快速检索,由数据表中的一列或多列组合而成,索引实质上是一张描述索引列的列值与原表中记录行之间一 一对应关系的有序表。索引的实现通常使用B树及其变种B树…

2022年终回顾与总结:螃蟹走路-冲,撞

工作赚钱&#xff0c;养家糊口 << 2022年对地球上的人类来说&#xff0c;肯定是刻骨铭心的纪元。对于微小的个人而言&#xff0c;感受是真真切切的。固然全球疫情危害了劳苦大众&#xff0c;但家庭给我的触动却是直接和深刻的。 这一年的轨迹被6月的一刀切成两片。上半年…

深度学习——序列模型(笔记)

1.序列数据&#xff1a; ①现实生活中有很多数据是有时序结构&#xff0c;比如电影的评分随时间的变化而变化。 ②统计学中&#xff0c;超出已知观测范围进行预测是外推法&#xff0c;在现有的观测值之间进行估计是内插法 2.统计工具&#xff1a;处理序列数据选用统计工具和新…

第一章:Mybatis与微服务注册

目录 一、SpringBoot整合MybatisPlus 创建自动生成代码子模块 创建商品服务子模块 二、SpringBoot整合Freeamarker 三、SpringBoot整合微服务&gateway&nginx 整合微服务之商品服务zmall-product 创建并配置网关gateway服务 安装配置SwitchHosts 安装配置Windo…

安装包部署prometheus+Grafana+node_exporter

部署prometheus 在192.168.11.141服务器操作 下载prometheus安装包 wget https://github.com/prometheus/prometheus/releases/download/v2.32.1/prometheus-2.32.1.linux-amd64.tar.gz 下载prometheus安装包 tar xvf prometheus-2.32.1.linux-amd64.tar.gz -C /usr/local…

OSPF的工作原理与性能优化

OSPF的3张表 OSPF的工作过程分为3个大步骤&#xff0c;分别是形成邻居关系&#xff0c;形成邻接关系&#xff0c;计算路由 OSPF建立邻居&#xff0c;收集LSA&#xff0c;收集完成形成邻接 用收集到的LSA&#xff0c;作为原材料&#xff0c;计算路由 完成这3大步骤&#xff0c;…

分享106个PHP源码,总有一款适合您

源码下载链接&#xff1a;https://pan.baidu.com/s/1Dyc3Qj8JRHJr2sECdEqGrA?pwdlscj 提取码&#xff1a;lscj PHP源码 分享106个PHP源码&#xff0c;总有一款适合您 采集参数 page_count 1 # 每个栏目开始业务content"text/html; charsetgb2312"base_url &q…

MySQL事务隔离级别详解

一、什么是事务 事务&#xff08;Transaction&#xff09;是由一系列对数据库中的数据进行访问与更新的操作所组成的一个程序执行单元。 在同一个事务中所进行的操作&#xff0c;要么都成功&#xff0c;要么就都失败。理想中的事务必须满足四大特性&#xff0c;这就是大名鼎鼎…

8种专坑同事的 SQL 写法,性能降低100倍,不来看看?

今天给大家分享几个SQL常见的“坏毛病”及优化技巧。 SQL语句的执行顺序&#xff1a; 1、LIMIT 语句 分页查询是最常用的场景之一&#xff0c;但也通常也是最容易出问题的地方。比如对于下面简单的语句&#xff0c;一般 DBA 想到的办法是在 type、 name、 create_time 字段上…

第二章:Swagger2

目录 背景介绍 什么是Swagger2 常用注解 SpringBoot整合Swagger2 生产环境下屏蔽Swagger2 修改Swagger2配置类 修改application.yml 使用maven package打包测试 运行测试 背景介绍 在团队开发中&#xff0c;一个好的 API 文档不但可以减少大量的沟通成本&#xff0c;还…

Linux系统的进程管理

文章目录Linux系统的进程管理1.查看进程2.父进程3.终止进程4.进程树Linux系统的进程管理 在LINUX中&#xff0c;每个执行的程序都称为一个进程。每一个进程都分配一个ID号(pid,进程号) 每个进程都可能以两种方式存在的。前台与后台&#xff0c;所谓前台进程就是用户目前的屏幕…

Vulnhub 靶场 Earth

通关方案&#xff1a;https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html 思路流程&#xff1a; 1. 信息收集 nmap扫描发现开了22端口和两个web端口&#xff08;80和443&#xff09;。 注意这里信息收集到到位&#xff0c;获取的信息多一些。 使用nmap默认脚…

常见的降维技术比较:能否在不丢失信息的情况下降低数据维度

本文将比较各种降维技术在机器学习任务中对表格数据的有效性。我们将降维方法应用于数据集&#xff0c;并通过回归和分类分析评估其有效性。我们将降维方法应用于从与不同领域相关的 UCI 中获取的各种数据集。总共选择了 15 个数据集&#xff0c;其中 7 个将用于回归&#xff0…

电子招标采购系统源码—互联网+招标采购

​ ​ 智慧寻源 多策略、多场景寻源&#xff0c;多种看板让寻源过程全程可监控&#xff0c;根据不同采购场景&#xff0c;采取不同寻源策略&#xff0c; 实现采购寻源线上化管控&#xff1b;同时支持公域和私域寻源。 询价比价 全程线上询比价&#xff0c;信息公开透明&#x…

Kong动态负载均衡与服务发现

Kong动态负载均衡一、背景二、通过docker 安装 Kong三、分布式API网关存在的意义四、Kong 的相关特性五、Kong 体系结构六、Kong 工作流程七、从 nginx 配置到 Kong 配置7.1、Kong 核心四对象7.2、四对象关系八、插件机制九、Kong 网关插件十、使用konga10.1、实现一个负载均衡…

sklearn预测评估指标计算详解:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1score

目录 前言 一、准确率 二、精确率 三、召回率 四、F1-score 点关注&#xff0c;防走丢&#xff0c;如有纰漏之处&#xff0c;请留言指教&#xff0c;非常感谢 前言 很多时候需要对自己模型进行性能评估&#xff0c;对于一些理论上面的知识我想基本不用说明太多&#xff0…

工具及方法 - 项目管理工具ProjectLibre

这个项目管理工具是开源和免费的&#xff0c;可以作为微软Project工具的平替。官网是 http://www.projectlibre.org 。 下载&#xff1a; ProjectLibre - Project Management download | SourceForge.net 当前的最新版本是2021-01-08的1.9.3版本&#xff0c;而现在是2022-12月…

路由交换网络技术,交换机基础入门及相关特性介绍

一、交换机:工作在数据链路层 ,转发数据帧 HUB所有接口再同一个冲突域,交换机每个接口都属于一个冲突域 交换机功能: 1、学习 2、转发 3、泛洪 4、丢弃 二、学习MAC地址及转发 MAC地址表项默认老化时间300秒。如果在300秒之内收到同一主机从同一接口发来的帧,老化时…

web3:区块链Blockchain

在此声明&#xff0c;仅做分享&#xff0c;绝不存在倡导炒币行为 目录区块链概念区块链基础知识交易(Transaction)区块(Block)链(Chain)公私钥区块链存储结构简单理解区块结构Block区块头Merkle根nonce区块链原理区块链架构区块链特点分布式账本—不可篡改性、去中心化非对称加…

ThinkPHP5之SQLI审计分析(一)

说明 该文章来源于徒弟lu2ker转载至此处&#xff0c;更多文章可参考&#xff1a;https://github.com/lu2ker/ 文章目录说明0x00 测试代码做了什么&#xff1f;0x01 调用链分析0x02 分析最内层调用的处理0x03 分析上一层调用的处理0x04 Payload构造Time&#xff1a;8-31 影响版…