Yapi部署到kubernetes(k8s)--Azure AKS

背景

找來找去都沒找到簡單方便的部署yapi到k8s的教程,就自己寫了個;

本教程部署的版本是: 1.10.2

部署步驟

克隆倉庫:

git clone https://github.com/gebiWangshushu/hei-yapi-k8s-deploy.git

第一步 部署MongoDB

如果已有MongoDB請跳過這步

先創建命名空間

kubectl create ns yapi

創建pv的Secret

kubectl create secret generic mongo-azure-secret --from-literal=azurestorageaccountname=<blobAccountName> --from-literal=azurestorageaccountkey=<blobAccountKey> -n yapi

如果大家不是很清楚什麼是pv/pvc 的需要先去了解下;

創建pv/pvc

kubectl apply -f mogon-pv.yaml

我這裏是掛載到azure blob file share,大家可以改爲掛載到自己喜歡的地方;

部署mongo

kubectl apply -f mogon.yaml

驗證mongo部署

用端口轉發訪問mongo

https://kubernetes.io/zh-cn/docs/tasks/access-application-cluster/port-forward-access-application-cluster/

kubectl get deployment

kubectl port-forward deployment/mongodb 27017:27017

這樣就可以用 mongodb://127.0.0.1:27017 連接到mongo了

第二步 部署Yapi構建程序

kubectl apply -f yapi.yaml

第三步 開始部署Yapi

方式一 使用WebUI部署(推薦)

需要service爲NodePort(也可以用kubectl port-forward),打開:集羣ip: 可看到:

1656343915360

填好配置後看“開始部署“按鈕即可,這種簡單方便且是官方推薦方式;

方式二 其他方式(只是思路)

參考:https://hellosean1025.github.io/yapi/devops/index.html

1、先準備環境

進入pod:
mkdir yapi
cd yapi

wget https://github.91chi.fun//https://github.com/YMFE/yapi/archive/refs/heads/master.zip

unzip master.zip

vm yapi-master venders

cp vendors/config_example.json ./config.json //複製完成後請修改相關配置
cd vendors
rm package-lock.json #這個不刪會導致安裝失敗

2、準備配置

替換配置:config.json的值:

{
    "port": "3000",
    "adminAccount": "[email protected]",
    "timeout": 120000,
    "db": {
      "servername": "127.0.0.1",
      "DATABASE": "yapi",
      "port": 27017,
      "user": "test1",
      "pass": "test1",
      "authSource": ""
    },
    "mail": {
      "enable": true,
      "host": "smtp.163.com",
      "port": 465,
      "from": "***@163.com",
      "auth": {
        "user": "***@163.com",
        "pass": "*****"
      }
    }
}

替換腳本

sed -i 's/\"adminAccount\": \"[email protected]\"/\"adminAccount\": '\"${YAPI_ADMIN_ACCOUNT}\"'/g' config.json
sed -i 's/\"servername\": \"127.0.0.1\"/\"servername\": '\"${YAPI_DB_SERVERNAME}\"'/g' config.json
sed -i 's/\"DATABASE\": \"yapi\"/\"DATABASE\": '\"${YAPI_DB_DATABASE}\"'/g' config.json
sed -i 's/\"user\": \"test1\"/\"user\": '\"${YAPI_DB_USER}\"'/g' config.json
sed -i 's/\"pass\": \"test1\"/\"pass\": '\"${YAPI_DB_PASS}\"'/g' config.json
sed -i 's/\"authSource\": \"\"/\"authSource\": '\"${YAPI_DB_AUTH_SOURCE}\"'/g' config.json
sed -i 's/\"host\": \"smtp.163.com\"/\"host\": '\"${YAPI_MAIL_HOST}\"'/g' config.json
sed -i 's/\"from\": \"\*\*\*@163.com\"/\"from\": '\"${YAPI_MAIL_FROM}\"'/g' config.json
sed -i 's/\"user\": \"\*\*\*@163.com\"/\"user\": '\"${YAPI_MAIL_AUTH}\"'/g' config.json
sed -i 's/\"pass\": \"\*\*\*\*\*\"/\"pass\": '\"${YAPI_MAIL_PASS}\"'/g' config.json
#defual
sed -i 's/\"port\": \"3000\"/\"port\": '${YAPI_PORT:-3000}'/g' config.json
sed -i 's/\"port\": 27017/\"port\": '${YAPI_DB_PORT:-27017}'/g' config.json
sed -i 's/\"enable\": true/\"enable\": '${YAPI_MAIL_ENABlE:-false}'/g' config.json
sed -i 's/\"port\": 465/\"port\": '${YAPI_MAIL_PORT:-465}'/g' config.json

3、啓動程序

npm install --production --registry https://registry.npm.taobao.org
npm run install-server //安裝程序會初始化數據庫索引和管理員賬號,管理員賬號名可在 config.json 配置
node server/app.js //啓動服務器後,請訪問 127.0.0.1:{config.json配置的端口},初次運行會有個編譯的過程,請耐心等候

源碼

https://github.com/gebiWangshushu/hei-yapi-k8s-deploy

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章