k8s部署yapi环境
yapi作用api接口管理平台
在这里插入图片描述
k8s环境搭建:
https://blog.csdn.net/weixin_43606975/article/details/119947061?spm=1001.2014.3001.5502

在这里插入图片描述
1.mongodb文件

#cat mongodb.yaml
---
kind: Deployment
apiVersion: apps/v1
metadata:
  labels:
    app: mongo
  name: mongo
spec:
  selector:
    matchLabels:
      app: mongo
  template:
    metadata:
      labels:
        app: mongo
    spec:
      nodeName: k8s-node1
      restartPolicy: Always
      containers:
        - image: mongo:latest
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 27017
          name: mongo
          env:
            - name: MONGO_INITDB_ROOT_USERNAME
              value: "root"
            - name: MONGO_INITDB_ROOT_PASSWORD
              value: "admin@123456"
            - name: MONGO_INITDB_DATABASE
              value: "yapi"
          livenessProbe:
            tcpSocket:
              port: 27017
            initialDelaySeconds: 10
            periodSeconds: 10
            timeoutSeconds: 5
          readinessProbe:
            tcpSocket:
              port: 27017
            initialDelaySeconds: 5
            periodSeconds: 10
            timeoutSeconds: 1
          # 优雅退出
          lifecycle:
            preStop:
              exec:
                command: ["/bin/bash", "-c", "sleep 20"]
          volumeMounts:
            - name: mongo-db
              mountPath: /data/db
           
      volumes:
        - name: mongo-db
          hostPath:
            path: /data/yapi/mongo
            type: DirectoryOrCreate
       

---
apiVersion: v1
kind: Service
metadata:
  name: mongo
spec:
  type: ClusterIP
  selector:
    app: mongo
  ports:
  - protocol: TCP
    port: 27017
    targetPort: 27017

---
apiVersion: v1
kind: Service
metadata:
  name: mongoba
spec:
  type: NodePort
  ports:
  - name: mongo
    protocol: TCP
    port: 27017
    targetPort: 27017
    nodePort: 30075
  selector:
    app: mongo

2.yapi文件

#cat yapi.yaml
---
kind: Deployment
apiVersion: apps/v1
metadata:
  labels:
    app: yapi
  name: yapi
spec:
  replicas: 2  #2个副本
  selector:
    matchLabels:
      app: yapi
  template:
    metadata:
      labels:
        app: yapi
    spec:
      restartPolicy: Always
      containers:
        - image: jayfong/yapi:latest
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 3000
          name: yapi
          env:
            #管理员账号,禁止注册,默认密码: ymfe.org 登录请修改
            - name: YAPI_ADMIN_ACCOUNT
              value: "admin@qq.com"
            - name: YAPI_ADMIN_PASSWORD
              value: "admin123"
            - name: YAPI_CLOSE_REGISTER
              value: "true"
            #mongodb 配置
            - name: YAPI_DB_SERVERNAME
              value: "mongo.default.svc.cluster.local"
            - name: YAPI_DB_PORT
              value: "27017"
            - name: YAPI_DB_DATABASE
              value: "yapi"
            - name: YAPI_DB_USER
              value: "root"
            - name: YAPI_DB_PASS
              value: "admin@123456"
            - name: YAPI_DB_AUTH_SOURCE
              value: "admin"
            #mail 邮件功能
            - name: YAPI_MAIL_ENABLE
              value: "true"
            - name: YAPI_MAIL_HOST
              value: "smtp.exmail.qq.com"
            - name: YAPI_MAIL_PORT
              value: "465"
            - name: YAPI_MAIL_FROM
              value: "admin@qq.com"
            - name: YAPI_MAIL_AUTH_USER
              value: "xxx"
            - name: YAPI_MAIL_AUTH_PASS
              value: "xxx"
            #ldap 功能
            - name: YAPI_LDAP_LOGIN_ENABLE
              value: "false"
      initContainers:
      - name: init-mongo
        image: busybox
        command: ['sh', '-c', 'until nslookup mongo; do echo waiting for mongo; sleep 2; done;']

---
apiVersion: v1
kind: Service
metadata:
  name: yapi
spec:
  type: NodePort
  selector:
    app: yapi
  ports:
  - protocol: TCP
    port: 3000
    nodePort: 30000

3.启动yapi,mongodb服务

cd /home/yapi
kubectl apply -f .
kubectl get pod,svc 

在这里插入图片描述
4.访问用户密码:admin@qq.com /admin123
http://k8s-master-ip:30000/
在这里插入图片描述

在这里插入图片描述

5.数据迁移:

mongo数据备份:
# mongodump  -h 192.168.1.151  --port 30075  -u root -p admin@123456 -d yapi -o /home/yapi
mongo 数据恢复:
# mongorestore -h localhost -u root -p admin@123456 -d yapi  /home/yapi/yapi
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐