背景
找來找去都沒找到簡單方便的部署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
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:
填好配置後看“開始部署“按鈕即可,這種簡單方便且是官方推薦方式;
方式二 其他方式(只是思路)
參考: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配置的端口},初次運行會有個編譯的過程,請耐心等候