乐趣区

关于kubernetes: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


留神:这是个阿里云的 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 库,并对内网服务器进行 受权

[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 干什么呢?间接简化一些!并做一下资源的限度!

[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
NAME                         READY   STATUS    RESTARTS      AGE
laya-wiki-8554fb868f-sfqkw   1/1     Running   1 (19s ago)   50s

强调一下:image 镜像 latest 的慎用!官网文档中也有提到。这算是一个常识吧!

4. 对于服务的对外裸露与拜访

失常的是作一个 ClusterIP 而后应用 traefik 对外映射服务绑定域名!对于 traefik 参照:Kubernetes 1.20.5 装置 traefik 在腾讯云下的实际。我这里阿里云还没有备案 …. 间接应用了 nodeport 的形式!间接治理控制台开启了

浏览器拜访 ip+nodeport

恩注册管理员登陆治理页面

还是很清新的页面的,应用就不去深究了只是搭建一个简略的利用。

总结

  1. 只是作一个简略的服务,反复了一遍 configmap deployments 的应用
  2. 揭示本人慎用lates t 标签
  3. 没有备案域名用起来太不爽了 ….. 阿里云的服务感觉比腾讯云的贵好多阿感觉哈哈哈哈
退出移动版