k8s环境部署yapi以docker部署yapi_yapi namespace.-程序员宅基地

技术标签: 容器  运维  kubernates  docker  

k8s环境部署yapi以docker部署yapi

使用Docker部署Yapi

https://www.jianshu.com/p/a97d2efb23c5

部署Yapi

运行mangodb
# 创建存储卷
docker volume create mongo-data

# 启动 MongoDB
docker run -d \
  --name mongo-yapi \
  -v mongo-data:/data/db \
  -e MONGO_INITDB_ROOT_USERNAME=anoyi \
  -e MONGO_INITDB_ROOT_PASSWORD=anoyi.com \
  mongo
获取Yapi镜像
docker pull registry.cn-hangzhou.aliyuncs.com/anoyi/yapi
自定义配置文件
{
    
  "port": "3000",
  "adminAccount": "[email protected]",
  "timeout":120000,
  "db": {
    
    "servername": "mongo",
    "DATABASE": "yapi",
    "port": 27017,
    "user": "anoyi",
    "pass": "anoyi.com",
    "authSource": "admin"
  }
}
初始化 YAPI 数据库索引及管理员账号
docker run -it --rm \
  --link mongo-yapi:mongo \
  --entrypoint npm \
  --workdir /yapi/vendors \
  -v $PWD/config.json:/yapi/config.json \
  registry.cn-hangzhou.aliyuncs.com/anoyi/yapi \
  run install-server
启动 Yapi 服务
docker run -d \
  --name yapi \
  --link mongo-yapi:mongo \
  --workdir /yapi/vendors \
  -p 3000:3000 \
  -v $PWD/config.json:/yapi/config.json \
  registry.cn-hangzhou.aliyuncs.com/anoyi/yapi \
  server/app.js

使用YAPI

访问页面

访问: http://localhost:3000
登录账号:[email protected]
密码:ymfe.org

手动构建YAPI的镜像

编辑docker file
FROM node:12-alpine as builder
WORKDIR /yapi
RUN apk add --no-cache wget python make
ENV VERSION=1.9.2
RUN wget https://github.com/YMFE/yapi/archive/v${VERSION}.zip
RUN unzip v${VERSION}.zip && mv yapi-${VERSION} vendors
RUN cd /yapi/vendors && cp config_example.json ../config.json && npm install --production --registry https://registry.npm.taobao.org

FROM node:12-alpine
MAINTAINER [email protected]
ENV TZ="Asia/Shanghai"
WORKDIR /yapi/vendors
COPY --from=builder /yapi/vendors /yapi/vendors
EXPOSE 3000
ENTRYPOINT ["node"]

注意将 Dockerfile 中的 VERSION 值修改为你需要构建的 YAPI 版本。

构建镜像
docker build -t yapi .

k8s环境部署yapi

yaml文件

存储根据自己需要自己配,这个配置是使用主机的文件路径,防止pod飘逸,固定pod跑在某个主机上

apiVersion: apps/v1
kind: Deployment
metadata:
  name: yapi
  namespace: devops-yapi
  labels:
    app: yapi
spec:
  replicas: 1
  selector:
    matchLabels:
      app: yapi
  template:
    metadata:
      labels:
        app: yapi
    spec:
      volumes:
        - name: config
          configMap:
            name: yapi-config
        - name: localtime
          hostPath:
            path: /etc/localtime
            type: ''
      initContainers:
        - name: init-data
          image: registry.cn-hangzhou.aliyuncs.com/anoyi/yapi:latest
          command:
          - /bin/sh
          - "-c"
          args:
          - "cp /yapi/config/config.json /yapi; node server/install.js"
          volumeMounts:
          - name: config
            mountPath: /yapi/config
          - name: localtime
            readOnly: true
            mountPath: /etc/localtime
      containers:
        - name: yapi
          image: registry.cn-hangzhou.aliyuncs.com/anoyi/yapi:latest
          ports:
            - name: yapiport
              containerPort: 3000
              protocol: TCP
          env:
            - name: MONGO_INITDB_ROOT_USERNAME
              value: yapi
            - name: MONGO_INITDB_ROOT_PASSWORD
              value: qingzhu
          command:
          - /bin/sh
          - "-c"
          args:
          - "cp /yapi/config/config.json /yapi; node server/app.js"
          resources:
            requests:
              cpu: 500m
              memory: 512Mi
          volumeMounts:
            - name: config
              mountPath: /yapi/config
            - name: localtime
              readOnly: true
              mountPath: /etc/localtime
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: Always
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      securityContext: {
    }
      schedulerName: default-scheduler
  strategy:
    type: Recreate
  revisionHistoryLimit: 10
  progressDeadlineSeconds: 600
---
apiVersion: v1
kind: Service
metadata:
  name: yapi-service
  namespace: devops-yapi
  labels:
    app: yapi-service
spec:
  ports:
    - name: tcp
      protocol: TCP
      port: 3000
      targetPort: 3000
  selector:
    app: yapi
  type: NodePort
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: yapi-config
  namespace: devops-yapi
data:
  config.json: |
    {
      "port": "3000",
      "adminAccount": "[email protected]",
      "timeout": 120000,
      "db": {
        "servername": "yapi-mangodb-service",
        "DATABASE": "yapi",
        "port": 27017,
        "user": "yapi",
        "pass": "qingzhu",
        "authSource": "admin"
      }
    }
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: yapi-mangodb
  namespace: devops-yapi
  labels:
    app: yapi-mangodb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: yapi-mangodb
  template:
    metadata:
      labels:
        app: yapi-mangodb
    spec:
      volumes:
        - name: data
          persistentVolumeClaim:
            claimName: yapi-mangodb-pvc
        - name: localtime
          hostPath:
            path: /etc/localtime
            type: ''
      containers:
        - name: mangodb
          image: mongo:latest
          ports:
            - name: mangodbport
              containerPort: 27017
              protocol: TCP
          env:
            - name: MONGO_INITDB_ROOT_USERNAME
              value: yapi
            - name: MONGO_INITDB_ROOT_PASSWORD
              value: qingzhu
          resources:
            requests:
              cpu: 500m
              memory: 512Mi
          volumeMounts:
            - name: data
              mountPath: /data/db
            - name: localtime
              readOnly: true
              mountPath: /etc/localtime
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: Always
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      securityContext: {
    }
      schedulerName: default-scheduler
  strategy:
    type: Recreate
  revisionHistoryLimit: 10
  progressDeadlineSeconds: 600
---
apiVersion: v1
kind: Service
metadata:
  name: yapi-mangodb-service
  namespace: devops-yapi
  labels:
    app: yapi-mangodb-service
spec:
  ports:
    - name: tcp
      protocol: TCP
      port: 27017
      targetPort: 27017
  selector:
    app: yapi-mangodb
  type: NodePort
  sessionAffinity: None
  externalTrafficPolicy: Cluster
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: yapi-mangodb-pvc
  namespace: devops-yapi
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
  volumeName: yapi-mangodb-pv
  storageClassName: yapi-mangodb
  volumeMode: Filesystem
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: yapi-mangodb-pv
spec:
  capacity:
    storage: 20Gi
  local:
    path: /var/lib/kubelet/yapi-mangodb
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: yapi-mangodb
  volumeMode: Filesystem
  nodeAffinity:
    required:
      nodeSelectorTerms:
        - matchExpressions:
            - key: kubernetes.io/hostname
              operator: In
              values:
                - 172-16-22-72

---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: yapi-mangodb
provisioner: kubernetes.io/no-provisioner
reclaimPolicy: Delete
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38371367/article/details/122981639

智能推荐

dump排查内存异常 java_java中内存泄漏和内存溢出以及异常排查-程序员宅基地

文章浏览阅读402次。内存溢出 out of memory:是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;内存泄露 memory leak:是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。memory leak会最终会导致out of memory!内存泄漏从用户的角度来考虑的话根本感觉不到,但是从程序设..._java dump文件未释放

AutoTextView控件的使用(Android设置输入提示)_autotext的使用方法-程序员宅基地

文章浏览阅读1.3k次。大家在访问浏览器的时候,要搜索的东西只输入一半不到的时候,系统会给很多提示。如下:这个就是靠AutoTextView实现的。它会自动检索你所有的数据中满足条件的并进行提示。具体怎么操作呢?我们举个简单的例子。首先,先简单的创建个垂直线性布局,把AutoTextView放进去。代码如下:<?xml version="1.0" encoding="utf-8"?>&..._autotext的使用方法

免费虚拟服务器试用,免费虚拟服务器试用-程序员宅基地

文章浏览阅读603次。免费虚拟服务器试用 内容精选换一换本节操作介绍切换虚拟私有云的操作步骤。仅支持单网卡切换虚拟私有云。切换虚拟私有云会导致云服务器网络中断。切换虚拟私有云过程中,请勿操作云服务器的弹性公网IP,或对云服务器做其他操作。切换虚拟私有云后,云服务器子网、私有IP地址、MAC地址都会发生改变。切换虚拟私有云后,请重新配置源/目的检查和虚拟IP地址。虚拟私有云切换完成后,与网络配置华为云帮助中心,为用户提供..._免费虚拟服务器

Unity3D 文字线条效果_unity text自适应横线-程序员宅基地

文章浏览阅读561次。基于Unity实现的文字线条效果,代码添加到Text组件的物体上修改Type属性即可看到效果。using System.Text.RegularExpressions;using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public enum LineType { none, upperline, middleLine, _unity text自适应横线

在php里面找出有用的代码,实用的9个PHP代码片段-程序员宅基地

文章浏览阅读69次。实用的9个PHP代码片段在开发网站、app或博客时,代码片段可以真正地为你节省时间。今天,我们就来分享一下我收集的一些超级有用的PHP代码片段。一起来看一看吧!1.创建数据URI数据URI在嵌入图像到HTML / CSS / JS中以节省HTTP请求时非常有用,并且可以减少网站的加载时间。下面的函数可以创建基于$file的数据URI。function data_uri($file, $mime) ..._php项目怎么快速地找到页面对应的代码片段

checkio (tic-tac-toe)_"a game's result is presented as a list of strings-程序员宅基地

文章浏览阅读1.6k次。Tic-Tac-Toe, sometimes also known as Xs and Os, is a game for two players (X and O) who take turns marking the spaces in a 3×3 grid. The player who succeeds in placing three respective marks in a hori_"a game's result is presented as a list of strings, where \"x\" and \"o\" are pla"

随便推点

vue本地项目配置图片加载失败_vue开发之图片加载不出来问题解决-程序员宅基地

文章浏览阅读2.6k次。在使用vue开发项目的时候,经常会遇到的一个问题就是:图片加载不出来。下面是我总结的几种图片加载不出来的情况及解决办法。一、项目打包完成后,打开整体空白1、路径问题原因在vue+webpack的项目中,项目打包之后的css和js的引用路径是绝对路径,项目部署之后会将静态当成根目录,就造成了文件引用路径的错误。解决办法通过修改配置文件,将绝对路径改为相对路径。具体操作如下:1.vue-cli 3.0..._vue 数据请求慢本地图片未匹配

python拦截post_axios 封装使用、拦截特定请求、判断所有请求是否加载完毕-程序员宅基地

文章浏览阅读377次。基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 Node.js 中使用vue2.0之后,就不再对 vue-resource 更新,而是推荐使用 axios,本项目也是使用 axios功能特性在浏览器中发送 XMLHttpRequests 请求在 node.js 中发送 http请求支持 Promise API拦截请求和响应转换请求和响应数据取消请求自动转换 JSON 数据客户端支..._如何监听浏览器接口请求是否加载结束

linux安装了samba后怎么用,linux中安装samba的安装和使用详解-程序员宅基地

文章浏览阅读219次。linux中安装samba的安装和使用详解发布时间:2009-08-03 20:35:54来源:红联作者:zwb_nba本人学linux也没有多长时间,为了安装一些东西也费了不少时间,下面我就写下我安装samba的心得,赠给有缘人!1,我所用的环境,在虚拟机中安装的RedHat9.02,安装samba是为了使windows和linux能共享2.1,查看本机的IP地址和网络连接情况ifconfig ..._在linux系统上安装samba软件和相应的依赖库后,根据需求通过编辑smb.conf配置文件,

SpringBoot自定义HTML生成PDF,支持水印文本及图片_springboot html转pdf-程序员宅基地

文章浏览阅读236次。根据HTML实现数据渲染填充PDF动态列表,表格,图片步骤3、自定义HTML模版注:需要前端配合自定义模版计算高度 否则会导致边框 分页失效步骤4、Controller实现步骤5 Yml设置注:注意路径读取,及字体文件Ftl模版高度设置_springboot html转pdf

【高效开发工具系列】typora设置图床_typero图床设置-程序员宅基地

文章浏览阅读318次。安装 picgo 的插件picgo-plugin-sftp-uploader 是 PicGo 的一个插件,它可以将图片上传到 SFTP 服务器。SFTP 是 SSH 文件传输协议的缩写,它是一种安全的文件传输协议,通过使用 SSH 协议的加密和身份验证机制来保护传输的数据。使用 picgo-plugin-sftp-uploader 插件,您可以将图片上传到 SFTP 服务器,从而实现图片的备份、共享和传输。_typero图床设置

传智播客设计学院简介网页代码_传智播客设计学院简介代码-程序员宅基地

文章浏览阅读5.5k次,点赞2次,收藏10次。项目任务项目分析1.该网页分为左右两大板块2.左边为字图结合,可在图片处理工具中将图片设计好,再将该图片设为背景即可3.左图中文字部分可用有序列表制作4.左图制作好后,设置左浮动,在进行右边的文字简介编辑5.右边文字可分为三个段落,分别编辑,并将"传智播客设计学院"字体加粗即可下面我们来看代码HTML 部分代码<!DOCTYPE html PUBLIC "-//W3C/..._传智播客设计学院简介代码

推荐文章

热门文章

相关标签