k8s1.27版本集群部署minio分布式

需求:

1.创建4个pv,一个pv一个minio-pod。使用sts动态分配pvc(根据存储类找到pv)。----持久化

2.暴露minio的9001端口。(nodeport)----管理界面

镜像:minio/minio:RELEASE.2023-03-20T20-16-18Z--->换国内源

说明:本环境仅测试,两个minio的pod放在master节点,在master加了污点容忍,其他两个miniopod放在工作节点,上生产环境需要调整,官方建议:4个minio需要4块硬盘,2个完好可读,3个完好可读写,可以挂一块磁盘到pv目录。

159m  2个minio+/data/minio-pv-0,1

160n   1个minio+/data/minio-pv-2

161n   1个minio+/data/minio-pv-3

159m# mkdir /data/minio-pv-{0..1} && chmod 777 -R /data/minio-pv-{0..1}

160n#mkdir /data/minio-pv-2 && chmod 777 -R /data/minio-pv-2

161n#mkdir /data/minio-pv-3 && chmod 777 -R /data/minio-pv-3

#159master上操作

mkdir minio-kind && cd minio-kind

vim minio-ns.yaml  #官方建议独立分配minio命名空间

apiVersion: v1
kind: Namespace
metadata:name: minio

vim minio-pv.yaml

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: minio-storage   #创建类
provisioner: kubernetes.io/no-provisioner
---
apiVersion: v1
kind: PersistentVolume
metadata:name: minio-pv-0labels:type: local
spec:capacity:storage: 1Gi  #生产环境需要调整扩大accessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: minio-storagelocal:path: /data/minio-pv-0nodeAffinity:required:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/hostnameoperator: Invalues:- 159m     #kubectl get nodes查看node名称
---
apiVersion: v1
kind: PersistentVolume
metadata:name: minio-pv-1labels:type: local
spec:capacity:storage: 1GiaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: minio-storagelocal:path: /data/minio-pv-1nodeAffinity:required:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/hostnameoperator: Invalues:- 159m
---
apiVersion: v1
kind: PersistentVolume
metadata:name: minio-pv-2labels:type: local
spec:capacity:storage: 1GiaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: minio-storagelocal:path: /data/minio-pv-2nodeAffinity:required:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/hostnameoperator: Invalues:- 160n
---
apiVersion: v1
kind: PersistentVolume
metadata:name: minio-pv-3labels:type: local
spec:capacity:storage: 1GiaccessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: minio-storagelocal:path: /data/minio-pv-3nodeAffinity:required:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/hostnameoperator: Invalues:- 161n

vim minio-sts.yaml  #svc,secret一起写了,注意要保证集群的coredns正常工作

apiVersion: apps/v1
kind: StatefulSet
metadata:name: minionamespace: minio
spec:serviceName: "minio"replicas: 4  # 集群节点数量selector:matchLabels:app: miniotemplate:metadata:labels:app: miniospec:tolerations:- key: "node-role.kubernetes.io/control-plane"operator: "Exists"effect: "NoSchedule"containers:- name: minio#image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/minio/minio:latestimage: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/minio/minio:RELEASE.2023-03-20T20-16-18Zargs:- server- http://minio-0.minio:9000/data- http://minio-1.minio:9000/data- http://minio-2.minio:9000/data- http://minio-3.minio:9000/data- --console-address- ":9001"  # 控制台地址参数- --address- ":9000"  # API 地址参数ports:- containerPort: 9000name: minio- containerPort: 9001name: minio-consoleenv:- name: MINIO_ROOT_PASSWORDvalueFrom:secretKeyRef:name: minio-secretkey: MINIO_ROOT_PASSWORD- name: MINIO_ROOT_USERvalueFrom:secretKeyRef:name: minio-secretkey: MINIO_ROOT_USER#- name: MINIO_BROWSER#value: "on"volumeMounts:- name: minio-datamountPath: /datavolumeClaimTemplates:- metadata:name: minio-dataspec:accessModes: [ "ReadWriteOnce" ]storageClassName: minio-storage  # 使用 minio-storage 存储类resources:requests:storage: 1Gi  # 每个节点的存储大小
---
apiVersion: v1
kind: Service
metadata:name: minionamespace: minio
spec:#clusterIP: Noneports:- port: 9000targetPort: 9000protocol: TCPname: minionodePort: 30001- port: 9001targetPort: 9001protocol: TCPname: minio-consolenodePort: 30002selector:app: miniotype: NodePort
---
apiVersion: v1
kind: Secret
metadata:name: minio-secretnamespace: minio
type: Opaque
data: MINIO_ROOT_USER: cXdlYXNkMTE=  #用户名base64,这里的参数根据版本不同可能需要调整为accessMINIO_ROOT_PASSWORD: cXdlYXNkMTE=  #密码base64

running起来了过一会再用mc(linux系统需要安装)连接测试,初始化时间较长

#测试连接

kubectl port-forward svc/minio 9000:9000 -n minio #临时测试
mc alias set myminio http://127.0.0.1:9000 用户名 密码

#防火墙开放30001和30002端口,提供外部访问(nodeport)

ufw allow 30001/TCP

ufw allow 30002/TCP

#访问管理页面

10.10.10.159:30002 

报错:

ERROR Unable to initialize backend: format.json file: expected format-type: fs, found: xl

delete -f .资源后,需要清理干净pv残留的数据,隐藏目录需要指定删除,不然会一直引用之前的数据。这里删除的是我的pv环境目录,根据场景删除。

rm -fr /data/minio-pv-0/.minio.sys/

rm -fr /data/minio-pv-1/.minio.sys/

rm -fr /data/minio-pv-2/.minio.sys/

rm -fr /data/minio-pv-3/.minio.sys/

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

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

相关文章

使用 OpenCV 实现 ArUco 码识别与坐标轴绘制

🎯 使用 OpenCV 实现 ArUco 码识别与坐标轴绘制(含Python源码) Aruco 是一种广泛用于机器人、增强现实(AR)和相机标定的方形标记系统。本文将带你一步一步使用 Python OpenCV 实现图像中多个 ArUco 码的检测与坐标轴…

Qt 控件发展历程 + 目标(1)

文章目录 声明简述控件的发展历程学习目标QWidget属性 简介:这篇文章只是一个引子,介绍一点与控件相关的但不重要的内容(浏览浏览即可),这一章节最为重要的还是要把之后常用且重要的控件属性和作用给学透,学…

socc 19 echash论文部分解读

前言:论文还是得吃透才行,不然很多细节有问题 q1 object和data chunck哪一个大 根据论文,一个 data chunk 通常比一个 object 大,因为它是由多个 object 组合而成的 。 论文中提到,cross-coding 会将多个 object 组合…

w~自动驾驶~合集1

我自己的原文哦~ https://blog.51cto.com/whaosoft/12371169 #世界模型和DriveGPT这类大模型到底能给自动驾驶带来什么ne 以下分享大模型与自动驾驶结合的相关工作9篇论 1、ADAPT ADAPT: Action-aware Driving Caption Transformer(ICRA2023) A…

【paddle】常见的数学运算

根据提供的 PaddlePaddle 函数列表,我们可以将它们按照数学运算、逻辑运算、三角函数、特殊函数、统计函数、张量操作和其他操作等类型进行分类。以下是根据函数功能进行的分类: 取整运算 Rounding functions 代码描述round(x)距离 x 最近的整数floor(…

绘制音频信号的各种频谱图,包括Mel频谱图、STFT频谱图等。它不仅能够绘制频谱图librosa.display.specshow

librosa.display.specshow 是一个非常方便的函数,用于绘制音频信号的各种频谱图,包括Mel频谱图、STFT频谱图等。它不仅能够绘制频谱图,还能自动设置轴标签和刻度,使得生成的图像更加直观和易于理解。 ### 函数签名 python libros…

DDR DFI 5.2 协议接口学习梳理笔记01

备注:本文新增对各种时钟含义做了明确定义区分,避免大家产生误解,这也是5.2版本新引入的。 1. 前言 截止2025年5月,DFI协议最新版本为 5.2,我们首先看一下过去几代的演进: DFI全称DDR PHY Interface,是一种接口协议,定义了 Controller 和 PHY 之间接口的信号、时序以…

windows篡改脚本提醒

✅ 功能简介 该监控系统具备如下主要功能: 📁 目录监控 实时监听指定主目录及其所有子目录内文件的变动情况。 🔒 文件哈希校验 对文件内容生成 SHA256 哈希,确保变更检测基于内容而非时间戳。 🚫 排除机制 支…

文章记单词 | 第102篇(六级)

一,单词释义 apologize /əˈpɒlədʒaɪz/ v. 道歉;认错discharge /dɪsˈtʃɑːrdʒ/ v./n. 排出;释放;解雇; dischargequiver /ˈkwɪvər/ v./n. 颤抖;抖动;箭筒plantation /plnˈteɪʃ…

【DCGMI专题1】---DCGMI 在 Ubuntu 22.04 上的深度安装指南与原理分析(含架构图解)

目录 一、DCGMI 概述与应用场景 二、Ubuntu 22.04 系统准备 2.1 系统要求 2.2 环境清理(可选) 三、DCGMI 安装步骤(详细图解) 3.1 安装流程总览 3.2 分步操作指南 3.2.1 系统更新与依赖安装 3.2.2 添加 NVIDIA 官方仓库 3.2.3 安装数据中心驱动与 DCGM 3.2.4 服务…

主成分分析(PCA)法例题——给定协方差矩阵

已知样本集合的协方差矩阵为 C x 1 10 [ 3 1 1 1 3 − 1 1 − 1 3 ] {\bm C}_x \frac{1}{10} \begin{bmatrix} 3 & 1 & 1 \\ 1 & 3 & -1 \\ 1 & -1 & 3 \end{bmatrix} Cx​101​ ​311​13−1​1−13​ ​ 使用PCA方法将样本向量降到二维 。 求解 计…

uni-app(4):js语法、css语法

1 js语法 uni-app的js API由标准ECMAScript的js API 和 uni 扩展 API 这两部分组成。标准ECMAScript的js仅是最基础的js。浏览器基于它扩展了window、document、navigator等对象。小程序也基于标准js扩展了各种wx.xx、my.xx、swan.xx的API。node也扩展了fs等模块。uni-app基于E…

Idea 配合 devtools 依赖 实现热部署

核心依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency> yaml配置 spring: #…

leetcode513.找树左下角的值:递归深度优先搜索中的最左节点追踪之道

一、题目本质与核心诉求解析 在二叉树算法问题中&#xff0c;"找树左下角的值"是一个典型的结合深度与位置判断的问题。题目要求我们找到二叉树中最深层最左边的节点值&#xff0c;这里的"左下角"有两个关键限定&#xff1a; 深度优先&#xff1a;必须是…

Python入门手册:Python基础语法

Python是一种简洁、易读且功能强大的编程语言&#xff0c;非常适合初学者入门。无论你是编程新手&#xff0c;还是有一定编程基础但想学习Python的开发者&#xff0c;掌握Python的基础语法都是迈向高效编程的第一步。本文将详细介绍Python的基本语法&#xff0c;包括变量和数据…

postgresql 常用参数配置

#01 - Connection-Authentication 优化点&#xff1a; listen_addresses 0.0.0.0 建议&#xff1a;生产环境应限制为具体IP&#xff08;如 192.168.1.0/24,127.0.0.1&#xff09;&#xff0c;避免暴露到公网。 ssl off 建议&#xff1a;启用SSL&#xff08;ssl on&#xf…

POI模板生成EXCEL 64000 style in a .xlsx Workbook

业务场景&#xff1a; 项目需要生成多个EXCEL表格&#xff0c;每个表格根据数据列表的大小动态增加Excel的行数&#xff0c;要保证新插入行的样式与模板完全一致 考虑使用以下方法保证样式的统一 cloneStyleFrom(templateStyle); 但是由于数据量比较大&#xff0c;抛出如下的…

HJ106 字符逆序【牛客网】

文章目录 零、原题链接一、题目描述二、测试用例三、解题思路四、参考代码 零、原题链接 HJ106 字符逆序 一、题目描述 二、测试用例 三、解题思路 基本思路&#xff1a;   考虑到可能会有多个空格&#xff0c;使用使用 getline 函数直接读取一行。   如果可以直接打印的…

CI/CD的演进之路

CI/CD的演进之路 一、CI/CD的成长演变 早期起源与初步实践&#xff1a;CI/CD的概念可以追溯到软件开发的早期阶段&#xff0c;但真正开始受到关注是在敏捷开发方法兴起之后。在传统的瀑布模型开发模式下&#xff0c;软件开发周期长、发布频率低&#xff0c;更新往往需要数月甚…

制作一款打飞机游戏55:扩散

子弹模式 ‌疯狂的子弹地狱‌&#xff1a; 嘿&#xff0c;伙计们&#xff0c;今天我们要创造一些令人印象深刻的子弹模式。这就是所谓的“子弹地狱”&#xff01; ‌问题与挑战‌&#xff1a; 在之前的开发中&#xff0c;我们遇到了一些问题。特别是关于如何处理子弹的角度问题…