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…

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

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

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

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

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

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

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

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

在日常工作中,需要频繁下载抖音视频,但逐个复制分享链接下载效率太低?别担心!我们推出了一款专业的抖音视频批量采集软件,基于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[宽*高]的颜色…

企微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;理想汽车研发…

【办公类-25-01】20240302 UIBOT上传 ”班级主页-育儿知识(家园小报)“

作品展示&#xff1a; 一、背景需求&#xff1a; 本学期制作了 “育儿知识&#xff08;家园小报&#xff09;”合并A4内容 【办公类-22-08】周计划系列&#xff08;4&#xff09;“育儿知识&#xff08;家园小报&#xff09;“ &#xff08;2024年调整版本&#xff09;-CSDN博…

【论文阅读】Usenix Security 2023 你看不见我:对基于激光雷达的自动驾驶汽车驾驶框架的物理移除攻击

文章目录 一.论文信息二.论文内容1.摘要2.引言3.作者贡献4.主要图表5.结论 一.论文信息 论文题目&#xff1a; You Can’t See Me: Physical Removal Attacks on LiDAR-based Autonomous Vehicles Driving Frameworks&#xff08;你看不见我:对基于激光雷达的自动驾驶汽车驾驶…

HCIA-HarmonyOS设备开发V2.0证书

目录 一、不墨迹&#xff0c;上证书二、考试总结三、习题四、知识点五、坚持就有收获 HCIA-HarmonyOS Device Developer V2.0 开发者能力认证考试已通过。 一、不墨迹&#xff0c;上证书 一个多月的努力&#xff0c;验证了自己的学习成果&#xff0c;也认识到自己有待提升之处…

微软AI文生图新突破,用于图像生成的多LoRA组合训练模型Multi-LoRA-Composition

微软近期在文本至图像生成领域取得了一项重要突破&#xff0c;通过引入多重低秩适应&#xff08;LoRA&#xff09;技术&#xff0c;成功地创造出了高度个性化和细节丰富的图像。这一研究不仅为我们带来了全新的图像生成方法&#xff0c;还为我们提供了一种基于GPT-4V的图像质量…

switch开关语句

定义 单条件多分支的开关语句。 格式定义 switch(表达式) { case 常量值1: 若干个语句 break; ... case 常量值n: 若干个语句 break; default: 若干语句 } ★注意★&#xff1a; ① 表达式的值必须与int兼容类型&#xff1a; byte&#xff0c;short&#xff0c;int&#xff…

串及BF朴素查找算法(学习整理):

关于串的相关定义&#xff1a; 串&#xff1a;用‘ ’表示的字符序列空串&#xff1a;包含零个字符的串子串&#xff1a;包含传本身和空串的子串 eg: abc(,a,b,c,ab,bc,ac,abc)共7个&#xff1a;串的长度的阶乘1&#xff08;空串&#xff09;真子串&#xff1a;不包含自身的所…