Kubernetes搭建wikijs

背景: 跟其他公司合作,他们的wiki用的Requarks/wiki,看了一眼文档搭建还是很简单的:https://docs.requarks.io/install/docker。顺便国内搜了一下文档:https://blog.csdn.net/weixin_26750481/article/details/108131866。先不说翻译的咋样,yaml文件能不能保证一下格式?写的也太乱了!看了一下原文:https://medium.com/swlh/deploy-wiki-js-on-kubernetes-686cec78b29还是看原文吧!简单作一个wiki跑一下!
Kubernetes搭建wikijs 1.创建命名空间namespace 这算是一个个人习惯,将不同用途的应用放在不同的namespace也方便管理后期维护!创建一个namespace wiki

[root@iZ2zeasfsez3jz7eu7iuh2Z ~]# kubectl create ns wiki namespace/wiki created

Kubernetes搭建wikijs
文章图片

注意:这是个阿里云的ack集群......当前就一台服务器。因为这些项目跟人合作要跑在阿里云上面......创建了一个wiki的目录用于存放yaml文件!
2.创建配置文件configmap 当然了,这里也可以不写configmap直接在应用的deployments配置文件里面添加系统变量。这里看个人了!关于数据库wikijs支持很多种: DB_TYPE : 数据库类型 ( mysql, postgres, mariadb, mssqlor sqlite)参照官方文档:https://docs.requarks.io/install/docker。这里db_type我就使用了mysql了(开发要求,个人没有什么要求的其实)。数据库直接使用了阿里云的rds数据库最低配置一核心1G内存。当然了提前创建好wikijs库,并对内网服务器进行授权
Kubernetes搭建wikijs
文章图片

[root@iZ2zeasfsez3jz7eu7iuh2Z wiki]# cat wiki-config.yaml
apiVersion: v1 kind: ConfigMap metadata: name: wiki-config namespace: wiki data: DB_HOST: "xxxxx" DB_PORT: "3306" DB_USER: "root" DB_PASS: "xxxxxxx" DB_TYPE: "mysql" DB_NAME: "wikijs"

kubectl apply应用生成cm配置文件(cm=configmap简称)
[root@iZ2zeasfsez3jz7eu7iuh2Z wiki]# kubectl apply -f wiki-config.yaml configmap/wiki-config configured

3. 编写生成deployment配置文件 https://medium.com/swlh/deploy-wiki-js-on-kubernetes-686cec78b29这篇文章比较古老首先apiVersion就要修改的,另外configmap都直接挂载了还一个个的ValueFrom干什么呢?直接简化一些!并做一下资源的限制!
Kubernetes搭建wikijs
文章图片

[root@iZ2zeasfsez3jz7eu7iuh2Z wiki]# cat wiki.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: laya-wiki namespace: wiki spec: replicas: 1 strategy: rollingUpdate: maxSurge: 0 maxUnavailable: 1 selector: matchLabels: app: laya-wiki template: metadata: labels: app: laya-wiki spec: containers: - name: laya-wiki image: requarks/wiki:2.5 envFrom: - configMapRef: name: wiki-config ports: - containerPort: 3000 protocol: TCP resources: requests: memory: "256M" cpu: "250m" limits: memory: "2048M" cpu: "2000m"

apply yaml文件等待pod running!
[root@iZ2zeasfsez3jz7eu7iuh2Z wiki]# kubectl apply -f wiki.yaml deployment.apps/laya-wiki created [root@iZ2zeasfsez3jz7eu7iuh2Z wiki]# kubectl get pods -n wiki NAMEREADYSTATUSRESTARTSAGE laya-wiki-8554fb868f-sfqkw1/1Running1 (19s ago)50s

强调一下:image镜像latest的慎用!官方文档中也有提到。这算是一个常识吧!
4. 关于服务的对外暴露与访问 【Kubernetes搭建wikijs】正常的是作一个ClusterIP 然后使用traefik对外映射服务绑定域名!关于traefik参照:Kubernetes 1.20.5 安装traefik在腾讯云下的实践。我这里阿里云还没有备案....直接使用了nodeport的方式!直接管理控制台开启了
Kubernetes搭建wikijs
文章图片

浏览器访问ip+nodeport
Kubernetes搭建wikijs
文章图片

恩注册管理员登陆管理页面
Kubernetes搭建wikijs
文章图片

还是很清爽的页面的,使用就不去深究了只是搭建一个简单的应用。
总结
  1. 只是作一个简单的服务,重复了一遍configmap deployments的使用
  2. 提醒自己慎用latest标签
  3. 没有备案域名用起来太不爽了.....阿里云的服务感觉比腾讯云的贵好多阿感觉哈哈哈哈

    推荐阅读