kubernetes上部署xwiki

Kubernetes中部署MySQL与XWiki的云原生实践
本文介绍了如何在已有的Kubernetes 1.23.0集群上,利用OpenEBS存储搭建云原生开发平台,集成包括MySQL数据库和XWiki知识库管理。通过Secret和ConfigMap管理敏感信息,使用PersistentVolumeClaim实现持久化存储,详细展示了从创建StorageClass、部署MySQL、配置XWiki到设置Ingress对外访问的全过程。

背景

团队计划基于 kubernetes 搭建一套云原生的开发平台,集成项目管理、需求管理、 BUG 管理、在线 IDE 、 gitops 、代码检查 、 自动测试、知识库等功能。

xwiki 是优秀的开源 wiki 系统,基于 java 开发,目前更新还比较活跃, 正好需要一个 wiki 来做知识库管理,决定选他了。

以下工作是在 kubernetes 1.23.0 已经部署好的情况下进行的。部署 kubernetes 可以参考我另外的文章 “kubesphere 多节点集群安装”

准备storageclass

我们使用 openebs作为存储,openebs默认安装的 local storageclass 在 pod 销毁后自动删除,不适合用于我的 mysql 存储,我们在 local storageclass 基础上稍作修改,创建新的 storageclass,允许 pod 销毁后,pv 内容继续保留,手动决定怎么处理。

apiVersion: v1
items:
- apiVersion: storage.k8s.io/v1
  kind: StorageClass
  metadata:
    annotations:
      cas.openebs.io/config: |
        - name: StorageType
          value: "hostpath"
        - name: BasePath
          value: "/var/openebs/localretain/"
      openebs.io/cas-type: local
      storageclass.beta.kubernetes.io/is-default-class: "false"
      storageclass.kubesphere.io/supported-access-modes: '["ReadWriteOnce"]'
    name: localretain
  provisioner: openebs.io/local
  reclaimPolicy: Retain
  volumeBindingMode: WaitForFirstConsumer
kind: List
metadata:
  resourceVersion: ""
  selfLink: ""

部署 mysql

在 kubernetes 环境下,因为 pod 都是动态创建的,采用传统的 ENV 环境变量来传递信息,存在敏感信息泄露的风险,推荐使用 secret 来保存敏感的配置信息,同时也可以方便动态绑定到 pod。

推荐使用 configmap 保存 pod 需要的其他配置信息。这样可以跟 pod 更好的配合。

准备用户名密码配置

我们使用 secret 保存 mysql 用户名密码等敏感信息。

kind: Secret
apiVersion: v1
metadata:
  name: xwiki-mysql
data:
  MYSQL_DATABASE: eHdpa2k=
  MYSQL_PASSWORD: 自行填写
  MYSQL_USER: eHdpa2k=
  MYSQL_ROOT_PASSWORD: 自行填写
type: Opaque

创建 configmap

我们使用 configmap 保存 mysql 的配置文件,以及数据库初始化文件。

apiVersion: v1
kind: ConfigMap
metadata:
  name: xwiki-mysql-cnf
data:
  xwiki.cnf: |-
    [client]
    default-character-set = utf8mb4

    [mysqld]
    character-set-server = utf8mb4
    collation-server = utf8mb4_bin
    explicit_defaults_for_timestamp = 1

    [mysql]
    default-character-set = utf8mb4

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: xwiki-mysql-init
data:
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值