IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> k8s/docker 安装yapi和MongoDB -> 正文阅读

[系统运维]k8s/docker 安装yapi和MongoDB

环境说明

centos7
防火墙 iptables

安装MongoDB

文档
https://mongodb.net.cn/manual/tutorial/install-mongodb-on-red-hat/

配置源

编辑文件

vim /etc/yum.repos.d/mongodb-org-4.2.repo

内容如下

[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

更新并安装

sudo yum update
sudo yum clean all
sudo yum makecache
sudo yum update
#
sudo yum install -y mongodb-org

查看安装位置

whereis mongod

设置开机启动

 systemctl enable mongod

启动

 systemctl start mongod

查看状态

 systemctl status mongod

如果有防火墙那么要配置防火墙

这里 只有iptables 防火墙

iptables -I INPUT -p tcp --dport 27017 -j ACCEPT

配置文件

vim /etc/mongod.conf

启动权限控制

security:
  authorization: enabled

authorization 启用基于角色的访问控制

如果你需要开启远程访问,把如下

bindIp: 127.0.0.1  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting

改为

bindIp: 0.0.0.0

重启并应用

 systemctl restart mongod

配置文件限制

echo "mongod     soft    nofiles   64000" >> /etc/security/limits.conf
echo "mongod     soft    nproc     64000" >> /etc/security/limits.conf

创建数据库用户-超管

mongo

接着 进入 库

use admin

创建用户及权限

db.createUser({user: "fox", pwd: "pd.fox.123#@", roles:[{role: "userAdminAnyDatabase", db: "admin"}]})

fox : 管理员(该用户可以在任何数据库上创建其他用户)
pd.fox.123#@: 为密码

输出

Successfully added user: {
        "user" : "fox",
        "roles" : [
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                }
        ]
}

退出

exit
或
quit()

案例-创建普通用户及库

登陆

mongo -u fox -p --authenticationDatabase admin

创建数据库

use yapi

给该库设置独立的用户及密码

本步骤不是必须的,你也可以使用超管用户fox

db.createUser({user: "yapi", pwd: "password", roles:[{role: "dbAdmin", db: "yapi"},{role: "readWrite", db: "yapi"}]})

最后退出

exit
或
quit()

命令行使用该用户登陆

mongo -u yapi -p --authenticationDatabase yapi

k8s 安装yapi

设置yapi配置文件

mkdir -p /www/yapi/conf
#
vim /www/yapi/conf/config.json

内容如下

{
   "port": "3000",
   "adminAccount": "foxiswho@gmail.com",
   "timeout":120000,
   "db": {
     "connectString": "mongodb://172.17.132.196:27017/yapi",
     "port": 27017,
     "user": "yapi",
     "pass": "password"
   },
   "mail": {
     "enable": true,
     "host": "smtp.gmail.com",
     "port": 465,
     "from": "*",
     "auth": {
       "user": "foxiswho@gmail.com",
       "pass": "yapi.pro"
     }
   }
 }

mail : 配置邮件服务器,不需要可以删除无需配置

yapi的k8s 配置文件

pod.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: yapi
  name: yapi
spec:
  replicas: 1
  revisionHistoryLimit: 5
  selector:
    matchLabels:
      app: yapi
  template:
    metadata:
      labels:
        app: yapi
    spec:
      containers:
        - env:
            - name: TZ
              value: Asia/Shanghai
          command: ["/bin/sh","-c","node /yapi/vendors/server/app.js"]
          image: 'yapipro/yapi'
          name: yapi
          imagePullPolicy: IfNotPresent
          #workingDir: /yapi
          ports:
            - containerPort: 3000
              protocol: TCP
          resources:
           limits:
             memory: 1Gi
           requests:
             memory: 900Mi
          volumeMounts:
            - name: vm-config
              mountPath: /yapi/config.json
            - name: vm-log
              mountPath: /yapi/log
      initContainers:
        - name: init-data
          image: 'yapipro/yapi'
          command:
          - /bin/sh
          - "-c"
          args:
          - "node server/install.js"
          volumeMounts:
            - name: vm-config
              mountPath: /yapi/config.json
            - name: vm-log
              mountPath: /yapi/log
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      volumes:
        - name: vm-config
          hostPath:
            # 宿主机目录
            path: /www/yapi/conf/config.json
            # hostPath 卷指定 type,如果目录不存在则创建(可创建多层目录)
            type: FileOrCreate
        - name: vm-log
          hostPath:
            path: /www/yapi/log
            type: DirectoryOrCreate

service.yaml

apiVersion: v1
kind: Service
metadata:
  name: yapi
  labels:
    app: yapi
spec:
  #type: NodePort
  ports:
    - port: 3000
      targetPort: 3000
      #nodePort: 3000
      name: web
  selector:
    app: yapi

ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: traefik
  name: yapi
spec:
  rules:
    - host: yapi.foxwho.com
      http:
        paths:
          - backend:
              service:
                name: yapi
                port:
                  number: 3000
            path: /
            pathType: ImplementationSpecific

应用生成

kubectl apply -f pod.yaml
kubectl apply -f service.yaml
kubectl apply -f ingress.yaml

最后访问浏览器

http://yapi.foxwho.com

初始化管理员账号在上面的 config.json 配置中 foxiswho@gmail.com,初始密码是 yapi.pro,可以登录后进入个人中心修改

docker 安装yapi

设置yapi配置文件

mkdir -p /www/yapi/conf
#
vim /www/yapi/conf/config.json

内容如下

{
   "port": "3000",
   "adminAccount": "foxiswho@gmail.com",
   "timeout":120000,
   "db": {
     "connectString": "mongodb://172.17.132.196:27017/yapi?replicaSet=rs0&slaveOk=true",
     "port": 27017,
     "user": "yapi",
     "pass": "password"
   },
   "mail": {
     "enable": true,
     "host": "smtp.gmail.com",
     "port": 465,
     "from": "*",
     "auth": {
       "user": "foxiswho@gmail.com",
       "pass": "yapi.pro"
     }
   }
 }

拉取镜像

docker pull yapipro/yapi:latest

创建一个自定义网络

Docker 容器之间网络互通需要使用 docker network create yapi 创建一个自定义网络

docker network create yapi

容器初始化数据库表

docker run -d --rm \
  --name yapi-init \
  --net=yapi \
  -v $PWD/config.json:/yapi/config.json \
   yapipro/yapi \
  server/install.js

运行容器

初始化管理员账号在上面的 config.json 配置中 foxiswho@gmail.com,初始密码是 yapi.pro,可以登录后进入个人中心修改

docker run -d \
   --name yapi \
   --restart always \
   --net=yapi \
   -p 3000:3000 \
   -v /www/yapi/conf/config.json:/yapi/config.json \
   yapipro/yapi \
   server/app.js

在服务器上验证 yapi 启动是否成功

curl localhost:3000
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:59:27  更:2022-03-24 00:59:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:54:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码