k8s分布式图床(k8s,metricsapi,vue3+ts)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

image-manage 图像管理应用

图像管理应用提供了一个方便管理图片的平台,支持单机和Kubernetes集群部署。请确保您至少拥有一个MySQL数据库和一个Redis数据库,以及一个至少为Kubernetes 1.29版本的集群(如果选择集群部署)。

文档及更多信息

注意⚠️

  1. 需要至少一个MySQL数据库
  2. 需要至少一个Redis数据库
  3. 如果采用集群部署,需要一个版本至少为Kubernetes 1.29的集群

单机部署(Docker)

使用Docker拉取并运行image-manage:

docker run -p 8080:8080 \-v 你的数据目录:/app\-e CONFIG_ISCLUSTERMODEENABLED=false \-e SPRING_DATASOURCE_URL=jdbc:mysql://192.168.0.254:3306/image_manage?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai \-e SPRING_DATASOURCE_USERNAME=root \-e SPRING_DATASOURCE_PASSWORD=123456 \-e SPRING_REDIS_HOST=192.168.0.254 \-e SPRING_REDIS_PASSWORD=123456 \wnzzer/image-manage:latest

仓库地址: https://github.com/wnzzer/image-manage

提示

  • 由于Spring Boot的配置替换策略,可以根据需要替换更多的Spring Boot参数配置。

集群部署部署(k8s)‘

前置要求

  • 安装metrics server,以支持应用监控资源。如果没有该组件,Kubernetes metrics API将无法工作,image-manage也将无法收集Pod资源信息。
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

部署image-manage

wget  https://github.com/wnzzer/image-manage/releases/latest/download/image-manage-yaml
apiVersion: v1
kind: Namespace
metadata:name: image-manage---
# storeclass 声明,非常关键,用于动态分配卷
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: nfs-store-class
provisioner: image-manage-pv-provisioner  # 替换为实际的卷插件,我这里使用的是nfs的自动供应器,可以采用公用云或者其他pv自动供应器
reclaimPolicy: Delete
parameters:volumeSize: "1Gi"  # 应用存储图片的空间nfsServer: 192.168.0.254nfsPath: /volume1/nfs---
# configMap k8s权限配置到英雄
apiVersion: v1
kind: ConfigMap
metadata:namespace: image-managename: k8s-role-config
data:key1: ./admin.config---# 应用
apiVersion: apps/v1
kind: StatefulSet
metadata:namespace: image-managename: image-manage
spec:serviceName: "image-manage-headless-service"replicas: 2selector:matchLabels:app: image-managetemplate:metadata:labels:app: image-managespec:containers:- name: image-manageimage: wnzzer/image-manage:latestports: - containerPort: 8080env:- name: SPRING_PROFILES_ACTIVEvalue: "prod"- name: CONFIG_ISCLUSTERMODEENABLEDvalue: "false"- name: SPRING_DATASOURCE_URLvalue: "jdbc:mysql://192.168.0.254:3306/image_manage?userUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai"- name: SPRING_DATASOURCE_USERNAMEvalue: "root"- name: SPRING_DATASOURCE_PASSWORDvalue: "123456"- name: SPRING_REDIS_HOSTvalue: "192.168.0.254"- name: SPRING_REDIS_PASSWORDvalue: "123456"volumeMounts:- name: local-volmountPath: "/app"- name: config-volume  # 挂载ConfigMap作为卷mountPath: "/etc/image-manage/config"  # 指定挂载ConfigMap的路径volumes:- name: config-volume  # 定义卷使用的ConfigMapconfigMap:name: k8s-admin-role-config  # 指定ConfigMap的名称volumeClaimTemplates:- metadata:name: local-volspec:accessModes: [ "ReadWriteOnce" ]storageClassName: "nfs-store-class"resources:requests:storage: 1Gi---
# 无头服务,用于应用的同步通信
apiVersion: v1
kind: Service
metadata:name: image-manage-headless-servicenamespace: image-manage
spec:clusterIP: Noneselector:app: image-manageports:- protocol: TCPport: 8080targetPort: 8080---
# cluster service 用于输出api
apiVersion: v1
kind: Service
metadata:name: image-manage-cluster-servicenamespace: image-manage
spec:type: ClusterIPports:- port: 8080targetPort: 8080selector:app: image-manage
kubectl apply -f image-manage.yaml
  1. 这里同样需要把redis,mysql修改成自己的配置
  2. 这里需要有自己的pv供应器,由于是pv动态创建,所以需要搭配自动供应器给statusfulSet创建pv,示例中使用的是nfs
  3. image-manage 需要搭配 k8s 配置进行对k8s api的访问,这里实例使用的是admin.conf,使用configmap挂载到容器里,如果想要更细致的权限划分,请将权限配置至少给予 image-manage级别的权限。
  4. 创建的k8s用户文件请将命名为admin.conf,因为应用里指定了k8s配置文件为admin.conf,其他名称会无法读取。

访问

我们可以直接在k8s中部署nginx,反代 image-manage cluster ip,进行访问,

运行web ui

cd font-userui
npm i
npm run dev

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/715999.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PCL1.14.0安装、使用教程

写在前面 本文内容 本文是PCL1.14.0在Windows下的安装、使用教程; PCL、Open3D其他版本的编译和使用相关教程见 各个版本的Open3D、PCL的编译、使用教程平台/环境 windows11(windows10): visual studio 2022;cmake 3.22; VsCode转载请注明出处&#xff…

http和https的区别是什么?

–前言 传输信息安全性不同、连接方式不同、端口不同、证书申请方式不同 一、传输信息安全性不同 1、http协议:是超文本传输协议,信息是明文传输。如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。 2、h…

关于django makemigrations/migrate在生成数据表上遇到的一些问题

当你删除了生成的 migration 文件夹,将数据库从 SQLite 切换到 MySQL,并且在执行 makemigrations 命令时显示没有变化,同时 MySQL 中没有生成表,可能是由于以下原因造成的: Django迁移系统的工作方式:Djang…

排序(3)——直接选择排序

目录 直接选择排序 基本思想 整体思路(升序) 单趟 多趟 代码实现 特性总结 直接选择排序 基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的…

软考 系统分析师系列知识点之详细调查(3)

接前一篇文章:软考 系统分析师系列知识点之详细调查(2) 所属章节: 第10章. 系统分析 第2节. 详细调查 在系统规划阶段,通过初步调查,系统分析师已经对企业的组织结构、系统功能等有了大致的了解。但是&…

力扣203移除链表元素

题目: 203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 1,设置一个头节点,统一操作。 2,这里是用p查找,但是…

BUUCTF---数据包中的线索1

1.题目描述 2.下载附件,是一个.pcap文件 3.放在wireshark中,仔细观察数据流,会发现有个叫fenxi.php的数据流 4.这条数据流是http,且使用GET方式,接下来我们使用http.request,methodGET 命令来过滤数据流 5.在分析栏中我们追踪htt…

查看端口占用命令

fuser 8080/tcp netstat -tuln | grep 8080 lsof -i:8080 ss -tuln | grep 8080

在Linux上使用通用二进制包安装MySQL

下载安装包 MySQL Community Downloads 安装依赖 mysql 数据目录初始化及服务启动阶段依赖libaio,检测是否已安装libaio dnf install libaio解压安装 ## 创建用户组 groupadd mysql ## 创建用户 useradd -r -g mysql -s /bin/false mysql ## 解压安装包 tar xv…

数据挖掘:航空公司的客户价值分析

需求分析 理解并掌握聚类分析方法,掌握数据的标准化,掌握寻找最佳聚类数,掌握聚类的绘图,掌握聚类分析的应用场景。 系统实现 实验流程分析 借助航空公司数据,对客户进行分类对不同类别的客户进行特征分析&#xf…

IEEE754标准的c语言阐述,以及几个浮点数常量

很多年前,调研过浮点数与整数之间的双射问题: win7 intel x64 cpu vs2013 c语言浮点数精度失真问题 最近重新学习了一下IEEE754标准,也许实际还有很多深刻问题没有被揭示。 计算机程序设计艺术,据说这本书中也有讨论。 参考&…

电商数据分析13——电商平台退货率分析与降低策略

目录 写在开头1. 退货率分析的重要性1.1 退货现象的影响1.2 退货数据的收集与分析 2. 数据分析揭示的主要退货原因2.1 产品描述不准确2.2 物流配送问题2.3 产品质量问题 3. 基于数据分析的退货率降低策略3.1 优化产品描述和图片3.2 改进物流配送服务3.3 加强质量控制和售后服务…

抖音视频批量采集软件|视频评论下载工具

在日常工作中,需要频繁下载抖音视频,但逐个复制分享链接下载效率太低?别担心!我们推出了一款专业的抖音视频批量采集软件,基于C#开发,满足您的需求,让您通过关键词搜索视频并自动批量抓取&#…

力扣每日一题 受限条件下可到达节点的数目 DFS

Problem: 2368. 受限条件下可到达节点的数目 文章目录 思路复杂度Code 思路 &#x1f468;‍&#x1f3eb; 灵神 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( n ) O(n) O(n) Code class Solution {int ans 0;boolean[] set;List<Integer>[] es;publ…

Unity中URP下实现水体(C#动态生成渐变图)

文章目录 前言一、Shader部分1、申明水渐变图纹理和采样器2、在片元着色器&#xff0c;进行纹理采样&#xff0c;并且输出 二、C#脚本部分1、我们新建一个C#脚本2、我们定义两个变量3、在Start内&#xff0c;new 一个Texture2D(宽&#xff0c;高)4、定义一个Color[宽*高]的颜色…

CCS ‘23 论文清单与摘要

网络安全学术顶会——CCS 23 论文清单与摘要 1、“Get in Researchers; We’re Measuring Reproducibility”: A Reproducibility Study of Machine Learning Papers in Tier 1 Security Conferences 可复现性对科学的进展至关重要&#xff1b;它增强了对看似矛盾结果的信心&…

企微hook源码第二弹

免费的企微框架&#xff0c;可下载测试。 支持文本消息&#xff0c;图片消息&#xff0c;视频消息&#xff0c;文件消息。 有兴趣可以进群交流。649480745&#xff0c;群内不定期开源企微hook源码 接下来就是第二弹的企微hook源码。后续会在群内开源完整源码。

diskMirror-backEnd-spring-boot | diskMirror 后端服务器 SpringBoot 版本!

diskMirror-backEnd-spring-boot 开源技术栏 diskMirror 后端服务器 SpringBoot 版本! 此版本中拓展了 DiskMirrorBackEnd&#xff0c;是一个完全的SpringBoot项目&#xff01; 目录 diskMirror-backEnd-spring-boot 目录我如何使用&#xff1f; 部署与配置我如何使用其中的…

Java+SpringBoot+Vue:志愿服务的数字化之旅

✍✍计算机毕业编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java、…

理想汽车狂飙18%,造车新势力洗牌

2月27日&#xff0c;#理想汽车狂飙18%#话题冲上热搜&#xff1b;前一日&#xff0c;理想汽车(02015.HK)公布了2023年第四季度及全年财报。尽管其营收净利双增长&#xff0c;但业绩增长背后仍有隐忧。 「不二研究」据其2023年报发现&#xff1a;2023年&#xff0c;理想汽车研发…