当前位置: 首页 > news >正文

k8s-部署对象存储minio

环境信息

minio版本 :最新

k8s 版本1.22

使用nfs作为共享存储

一.单节点安装包部署

脚本部署,一键部署,单节点应用于数据量小,一些缓存存储,比如gitlab-runner的产物数据,maven的打包依赖数据

#!/bin/bash# 步骤一:创建目录
sudo mkdir -p /opt/minio/{bin,conf,data}# 步骤二:下载服务
cd /opt/minio/bin
sudo wget https://dl.min.io/server/minio/release/linux-amd64/minio
sudo chmod +x minio# 步骤三:创建配置文件
sudo tee /opt/minio/conf/minio.conf > /dev/null <<EOF
MINIO_VOLUMES="/opt/minio/data"
#--address指定S3 API端口,--console-address指定web控制台端口.
MINIO_OPTS="--address :39000 --console-address :39001" 
# Root user for the server.
MINIO_ROOT_USER=admin
# Root secret for the server.
MINIO_ROOT_PASSWORD=minio123
EOF# 步骤四:创建启动命令
sudo tee /etc/systemd/system/minio.service > /dev/null <<EOF
[Unit]
Description=MinIO
Documentation=https://www.minio.org.cn/
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/opt/minio/bin/minio[Service]
User=root
Group=rootEnvironmentFile=/opt/minio/conf/minio.conf
ExecStart=/opt/minio/bin/minio server \$MINIO_OPTS \$MINIO_VOLUMES
Restart=alwaysLimitNOFILE=65536
TimeoutStopSec=infinity
SendSIGKILL=no[Install]
WantedBy=multi-user.target
EOF# 步骤五:启动服务
sudo systemctl daemon-reload
sudo systemctl enable minio.service
sudo systemctl start minio.service
sudo systemctl status minio.service

二.单节点k8s部署

1.minio-deploy.yaml部署

apiVersion: apps/v1
kind: Deployment
metadata:name: minio
spec:replicas: 1selector:matchLabels:app: miniotemplate:metadata:labels:app: miniospec:containers:- name: minioenv:- name: MINIO_ROOT_USERvalue:  'root'- name: MINIO_ROOT_PASSWORDvalue:  'root123456'        image: minio/minio:latestimagePullPolicy: IfNotPresentcommand:- /bin/sh- -c- minio server /data --console-address ":5000"ports:- name: datacontainerPort: 9000protocol: "TCP"- name: consolecontainerPort: 5000protocol: "TCP"volumeMounts:- name: minio-persistent-datamountPath: /datavolumes:- name: minio-persistent-datanfs:server: 192.168.110.190 path: /data/data/minio

执行资源文件

kubectl -f apply  minio-deploy.yaml -n minio

2.minio-service.yaml 创建

apiVersion: v1
kind: Service
metadata:name: minio
spec:type: NodePortports:- name: dataport: 9000targetPort: 9000protocol: TCPnodePort: 30069- name: consoleport: 5000targetPort: 5000protocol: TCPnodePort: 30070selector:app: minio

执行资源文件

kubectl -f apply  minio-service.yaml -n minio

安装好后浏览器访问ui,登录密码root和root123456

http://集群内部任意ip:30070 

三.k8s集群部署

1.创建挂载多磁盘目录

mkdir -p /data/data/minio/pv{1..4}

2.创建sc.yaml

cat > sc.yaml << 'EOF'
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: minio-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
EOF

3.创建pv.yaml

cat > pv.yaml << 'EOF'
apiVersion: v1
kind: PersistentVolume
metadata:name: minio-nfs-pv-1
spec:capacity:storage: 10GiaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: minio-storagenfs:server: 192.168.110.190path: /data/data/minio/pv1
---
apiVersion: v1
kind: PersistentVolume
metadata:name: minio-nfs-pv-2
spec:capacity:storage: 10GiaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: minio-storagenfs:server: 192.168.110.190path: /data/data/minio/pv2
---
apiVersion: v1
kind: PersistentVolume
metadata:name: minio-nfs-pv-3
spec:capacity:storage: 10GiaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: minio-storagenfs:server: 192.168.110.190path: /data/data/minio/pv3
---
apiVersion: v1
kind: PersistentVolume
metadata:name: minio-nfs-pv-4
spec:capacity:storage: 10GiaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: minio-storagenfs:server: 192.168.110.190path: /data/data/minio/pv4
EOF

4.创建 SVC

cat > svc.yaml << 'EOF'
apiVersion: v1
kind: Service
metadata:name: minio-hsnamespace: gitlablabels:app: minio
spec:clusterIP: Noneports:- port: 9000name: data- port: 5000name: consoleselector:app: minio
---
apiVersion: v1
kind: Service
metadata:name: minio-scnamespace: gitlablabels:app: minio
spec:type: NodePortports:- name: dataport: 9000targetPort: 9000protocol: TCPnodePort: 30090- name: consoleport: 5000targetPort: 5000protocol: TCPnodePort: 30050selector:app: minio
EOF

5.创建 STS

cat > sts.yaml << 'EOF'
apiVersion: apps/v1
kind: StatefulSet
metadata:name: minionamespace: gitlab
spec:serviceName: "minio-hs"replicas: 4selector:matchLabels:app: miniotemplate:metadata:labels:app: miniospec:containers:- name: minioenv:- name: MINIO_ROOT_USERvalue: "admin"- name: MINIO_ROOT_PASSWORDvalue: "admin12345"image: minio/minio:RELEASE.2023-08-09T23-30-22ZimagePullPolicy: IfNotPresentcommand:- /bin/sh- -c- minio server --console-address ":5000" http://minio-{0...3}.minio-hs.minio.svc.cluster.local/dataports:- name: datacontainerPort: 9000protocol: "TCP"- name: consolecontainerPort: 5000protocol: "TCP"volumeMounts:- name: datamountPath: /datavolumeClaimTemplates:- metadata:name: dataspec:accessModes: [ "ReadWriteOnce" ]resources:requests:storage: 10GistorageClassName: "minio-storage"
EOF

6.卸载服务

kubectl delete pod minio-mc -n gitlab

kubectl delete -f sts.yaml
kubectl get pod -n gitlab -o wide

kubectl delete -f svc.yaml
kubectl get svc -n gitlab

kubectl delete namespace minio
kubectl get namespace

kubectl get pvc -n gitlab
kubectl delete pvc -n migitlabnio --all

kubectl delete -f pv.yaml -n gitlab
kubectl get pv

kubectl delete -f sc.yaml -n gitlab
kubectl get sc

rm -rf /data/data/minio
mkdir -p /data/data/minio/pv{1..4}
tree /data/data/minio

四.注意事项

分部署部署时,注意使用的minio镜像,我是试了好多版本,才可以的,因为大多数存在minio-dns访问问题,各个几点之间通信异常 

相关文章:

k8s-部署对象存储minio

环境信息 minio版本 :最新 k8s 版本1.22 使用nfs作为共享存储 一.单节点安装包部署 脚本部署&#xff0c;一键部署&#xff0c;单节点应用于数据量小&#xff0c;一些缓存存储&#xff0c;比如gitlab-runner的产物数据&#xff0c;maven的打包依赖数据 #!/bin/bash# 步骤…...

go常用命令

创建一个module(逻辑概念) #The go mod init command initializes and writes a new go.mod file in the current directory, in effect creating #a new module rooted at the current directory. #specify a module path that serves as the module’s name. go mod initclon…...

【中年危机】程序猿自救指南

中年危机&#xff0c;一个听起来就充满挑战的词汇&#xff0c;它不仅仅是一个年龄的标记&#xff0c;更是一个个人成长和职业发展的转折点。 构架个人品牌&#xff1a; 学会打造IP个人品牌是职业生涯中的重要资产。在中年时期&#xff0c;你已经积累了丰富的经验和知识&#x…...

vueRouter路由总结

https://blog.csdn.net/qq_24767091/article/details/119326884...

算法工程师需要学习C++的哪些知识?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;以下是算法工程师需要学习的一些…...

CTF网络安全大赛简单的web抓包题目:HEADache

题目来源于&#xff1a;bugku 题目难度&#xff1a;简单 题目 描  述: > Wanna learn about some types of headache? > Lets dig right into it! 下面是题目源代码&#xff1a; <!DOCTYPE html> <html> <head><meta charset"utf-8"&…...

Qt Creator创建Python界面工程并打包为可执行exe文件

Qt Creator创建Python界面工程并打包为可执行exe文件_qtcreator创建python工程-CSDN博客...

基于单片机的步进电机控制系统的研究

摘要: 步进电机控制作为一种电机控制系统的重要模式,属于现代数字化控制的重要手段,其应用已经相当广泛。步进电机属于感应电机类,利用电子电路将直流电分为分时供电、多相时序供电控制电流,利用这种电流为电机供电,驱使电机工作。步进电机不能够在常规模式下使用,必须通过双环…...

BioPorto胰高血糖素样肽-1抗体(GLP-1)

丹麦BioPorto Diadnostics公司致力于提供世界领先的GLP-1抗体。基于结合GLP-1位点的不同&#xff0c;他们筛选出了不同的抗GLP-1抗体。有的抗体可以同时结合GLP-1的活性形式和非活性形式&#xff0c;有的专门结合生物活性形式的GLP-1。在开发和检测GLP-1相关治疗的过程中&#…...

Go 语言字符串及 strings 和 strconv 包

在 Go 语言编程中&#xff0c;字符串是最基本、最常用的数据类型之一。无论是处理用户输入、读取文件内容&#xff0c;还是生成输出&#xff0c;字符串操作无处不在。为了方便开发者对字符串进行各种操作&#xff0c;Go 语言提供了强大的 strings 包和 strconv 包。strings 包包…...

政府窗口服务第三方评估报告如何写

撰写政府窗口服务第三方评估报告需要结构清晰、内容详实&#xff0c;并包含对评估过程和结果的详细描述以及改进建议。以下是第三方评估机构民安智库&#xff08;第三方社会评估调研公司&#xff09;给出的一个政府窗口服务第三方评估报告简单的示例&#xff1a; 一、封面 报…...

若依前后端分离Spring Security新增手机号登录

备忘贴 转自&#xff1a;【若依RuoYi短信验证码登录】汇总_数据库_z_xiao_qiang-RuoYi 若依 配置Security: 按照Security的流程图可知&#xff0c;实现多种方式登录&#xff0c;只需要重写三个主要的组件&#xff0c;第一个用户认证处理过滤器&#xff0c;第二个用户认证tok…...

Oracle操作扩可变字符长度交易影响分析-较小

使用AI帮助学习知识 以下知识来至AI oracle 一张大表&#xff0c;对可变字符串长度从10扩到20位&#xff0c;oracle底层存储是否会发生变化&#xff0c;先锁表&#xff0c;更新表字典信息&#xff0c;然后会不会重新整理表&#xff0c;在有交易的情况下导致大量交易失效&#…...

全栈工程师需要具备哪些技能?

概论&#xff1a; 全栈工程师是一位能够从头到尾构建 Web 应用程序的工程师&#xff0c;能独立完成产品。技术包括前端部分、后端部分和应用程序所在的基础架构。他们在整个技术栈中工作&#xff0c;并了解其中的每个部分。从需求分析开始&#xff0c;到概要设计&#xff0c;详…...

用java实现客服聊天+网络爬虫下载音乐(java网络编程,io,多线程)

一 灵感&#xff1a; 在2022年的暑假&#xff0c;也就是我即将迈进高三的那个暑假&#xff0c;我并没有察觉自己应该要学习了&#xff0c;还是和过往的暑假一样玩着王者荣耀&#xff0c;凌晨2点睡觉&#xff0c;中午12点起床。我依稀记得这种状态一直持续到8月19。然而离开学还…...

基于springboot+vue的医院信息管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…...

乡村振兴与农业科技创新:加大农业科技研发投入,推动农业科技创新,促进农业现代化和美丽乡村建设

一、引言 在当代中国&#xff0c;乡村振兴已成为国家发展的重要战略之一。作为国民经济的基础&#xff0c;农业的发展直接关系到国家的稳定和人民的福祉。随着科技的不断进步&#xff0c;农业科技创新在推动农业现代化和美丽乡村建设中发挥着越来越重要的作用。本文旨在探讨如…...

Java 雪花算法:分布式唯一ID生成的魔法秘籍

欢迎来到本次博客的旅程&#xff0c;今天我们要揭开一个神秘算法的面纱&#xff0c;它就是在分布式系统中广受欢迎的——雪花算法&#xff08;Snowflake&#xff09;。这个算法不是用来预测雪花的形状&#xff0c;而是用来生成唯一的ID&#xff0c;保证在分布式系统中&#xff…...

mybatis配置环境流程

mybatis配置环境流程 为啥要用mybatis&#xff1a;通过Mybatis实现快速访问后端pgsql、mysql等数据库。 1.修改pom.xml&#xff0c;添加mybatis相关依赖 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-s…...

UE5增强输入系统入门

UE4直接在项目设置里设置的轴映射和操作映射在UE5中被标记为废弃&#xff0c;改为使用增强输入系统。 这两天学习了下蓝图和c中增强输入系统的使用&#xff0c;在这里分享一下。 学习使用的模板是第三人称模板(蓝图/c)&#xff0c;代码蓝图都参考的模板。 增强输入系统 UE5…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

OD 算法题 B卷【正整数到Excel编号之间的转换】

文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的&#xff1a;a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

什么是VR全景技术

VR全景技术&#xff0c;全称为虚拟现实全景技术&#xff0c;是通过计算机图像模拟生成三维空间中的虚拟世界&#xff0c;使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验&#xff0c;结合图文、3D、音视频等多媒体元素…...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...

6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础

第三周 Day 3 &#x1f3af; 今日目标 理解类&#xff08;class&#xff09;和对象&#xff08;object&#xff09;的关系学会定义类的属性、方法和构造函数&#xff08;init&#xff09;掌握对象的创建与使用初识封装、继承和多态的基本概念&#xff08;预告&#xff09; &a…...