加载中...

K8s搭建YApi管理平台


一 简介

旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API

1.1 平台介绍

YApi 是高效易用功能强大 的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。

1.2 平台特性

  • 基于 Json5 和 Mockjs 定义接口返回数据的结构和文档,效率提升多倍
  • 扁平化权限设计,即保证了大型企业级项目的管理,又保证了易用性
  • 类似 postman 的接口调试
  • 自动化测试, 支持对 Response 断言
  • MockServer 除支持普通的随机 mock 外,还增加了 Mock 期望功能,根据设置的请求过滤规则,返回期望数据
  • 支持 postman, har, swagger 数据导入
  • 免费开源,内网部署,信息再也不怕泄露了

二 部署

2.1 环境准备

YApi服务依赖于mongodb 作为底层存储,所以搭建服务之前需要配置mongo环境,这里可以参考前面的文章
Mongo集群搭建

2.2 配置服务

deploy

kind: Deployment
apiVersion: apps/v1
metadata:
  name: yapi
  namespace: yapi
  labels:
    app: yapi
  annotations:
    deployment.kubernetes.io/revision: '7'
    kubesphere.io/creator: admin
spec:
  replicas: 1
  selector:
    matchLabels:
      app: yapi
  template:
    metadata:
      name: yapi
      creationTimestamp: null
      labels:
        app: yapi
      annotations:
        kubesphere.io/restartedAt: '2022-03-07T07:07:24.975Z'
    spec:
      volumes:
        - name: yapi-config
          configMap:
            name: yapi-config
            items:
              - key: config.json
                path: config.json
            defaultMode: 420
      containers:
        - name: yapi
          image: 'harbor.huhuhahei.cn/huhuhahei/yapi:1.9.1'
          ports:
            - containerPort: 3000
              protocol: TCP
          resources: {}
          volumeMounts:
            - name: yapi-config
              mountPath: /opt/yapi/config.json
              subPath: config.json
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: IfNotPresent
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      securityContext: {}
      schedulerName: default-scheduler
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
  revisionHistoryLimit: 10
  progressDeadlineSeconds: 600

svc

kind: Service
apiVersion: v1
metadata:
  name: yapi
  namespace: yapi
  labels:
    app: yapi
  annotations:
    kubesphere.io/creator: admin
spec:
  ports:
    - protocol: TCP
      port: 3000
      targetPort: 3000
      nodePort: 31257
  selector:
    app: yapi
  clusterIP: 10.98.149.20
  type: NodePort
  sessionAffinity: None
  externalTrafficPolicy: Cluster

configmap

kind: ConfigMap
apiVersion: v1
metadata:
  name: yapi-config
  namespace: yapi
  annotations:
    kubesphere.io/creator: admin
data:
  config.json: |-
    {
       "port": "3000",
       "adminAccount": "admin@admin.com",
       "db": {
          "connectString": "mongodb://mongo-0.mongo.mongo:27017,mongo-1.mongo.mongo:27017,mongo-2.mongo.mongo:27017/yapi?replicaSet=rs0",
          "user": "yapi",
          "pass": "yapi"
       }
    }

2.3 交付k8s

kubectl apply -f .

初始化数据库

这里需要进入容器进行初始化用户否则admin用户无法登录

rm -f /opt/yapi/init.lock
node /opt/yapi/vendors/server/install.js
# 初始化后admin 用户:admin@admin.com 密码:ymfe.org

三 登录


文章作者: huhuhahei
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 huhuhahei !
评论
  目录