在k8s中以deployment方式部署minio

ops/2024/10/21 7:30:17/

minio官网给的demo是通过pod方式部署的,我碰到了好几次因为k8s集群断电重启后,以单pod方式部署部署的minio消失。因此这里改用deplyment的方式部署minio。

以下是完整的minio部署清单

---
# Deploys a new MinIO Pod into the metadata.namespace Kubernetes namespace
#
# The `spec.containers[0].args` contains the command run on the pod
# The `/data` directory corresponds to the `spec.containers[0].volumeMounts[0].mountPath`
# That mount path corresponds to a Kubernetes HostPath which binds `/data` to a local drive or volume on the worker node where the pod runs
#
apiVersion: apps/v1
kind: Deployment
metadata:name: minionamespace: devops
spec:replicas: 1selector:matchLabels:app: miniotemplate:metadata:labels:app: miniospec:containers:- name: minioimage: 192.168.10.30:9000/minio:latestcommand:- /bin/bash- -cargs:- minio server /data --console-address :9001env:- name: MINIO_SERVER_URLvalue: 'http://minio.rockstics.com'- name: MINIO_BROWSER_REDIRECT_URLvalue: 'http://minio.rockstics.com/minio/ui'volumeMounts:- mountPath: /dataname: localvolume # Corresponds to the `spec.volumes` Persistent VolumehostAliases:- ip: "192.168.10.188"hostnames:- "minio.rockstics.com"volumes:- name: localvolumehostPath: # MinIO generally recommends using locally-attached volumespath: /data/minio # Specify a path to a local drive or volume on the Kubernetes worker nodetype: DirectoryOrCreate # The path to the last directory must existnodeSelector:kubernetes.io/hostname: kubernetesw02---
kind: Service
apiVersion: v1
metadata:name: minio-servernamespace: devopslabels:app: minio-server
spec:ports:- name: http-consoleprotocol: TCPport: 9001targetPort: 9001- name: http-apiprotocol: TCPport: 9000targetPort: 9000selector:app: minio
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:annotations:labels:app: minioname: minionamespace: devops
spec:routes:- kind: Rulematch: Host(`minio.isiact.com`)services:- kind: Servicename: minio-servernamespace: devopsport: http-api- kind: Rulematch: Host(`minio.isiact.com`) && PathPrefix(`/minio/ui`)middlewares:- name: minio-consoleservices:- kind: Servicename: minio-servernamespace: devopsport: http-console
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:annotations:name: minio-consolenamespace: devops
spec:stripPrefix:prefixes:- /minio/ui

题外话:由于我通过MINIO_SERVER_URL指定了minio的内网访问域名,导致登录minio报"invalid login"的问题,刚开始以为是挂载的数据路径中有.minio.sys 相关信息(包括minio配置信息包括用户密码,assce_key等信息)被其他容器挂载无效,实践证明不是这样的,后来才发现是因为容易内无法解析我的内网域名导致的,解决方案就是直接进行host绑定。


http://www.ppmy.cn/ops/22131.html

相关文章

低代码+定制物资管理:创新解决方案探析

引言 在当今快速变化的商业环境中,企业面临着不断增长的挑战,如提高效率、降低成本、满足客户需求等。为了应对这些挑战,企业需要不断创新并采用先进的技术解决方案。在这样的背景下,低代码开发和定制化物资管理成为了引领企业变…

Maven介绍 主要包括Maven的基本介绍,作用,以及对应的Maven模型,可以对Maven有一个基本的了解

1、Maven介绍 1.1 什么是Maven Maven是Apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。 官网:https://maven.apache.org/ Apache 软件基金会,成立于1999年7月,是目前世界上最大的最受欢迎的开源软件基金会&…

elasticsearch 聚合查询

文章目录 前言elasticsearch 聚合查询1. 桶聚合2. 度量聚合3. 嵌套聚合4. 指标聚合 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差,实在…

【源码阅读】 Golang中的database/sql库源码探究

Note:文章待完结 文章目录 前言一、整体目录结构二、driver包1、驱动相关driver.Driver2、驱动连接:driver.Conn3、预处理结构:Stmt4、执行结果 driver.Result5、查询结果:driver.Rows6、driver.RowsAffected7、driver.Value8、Va…

addEventListener()方法中的参数,以及作用

addEventListener() 方法是 JavaScript 中用于向指定元素添加事件监听器的方法。它有两个参数: 事件名称 (type):这是一个字符串,表示要监听的事件名称。例如,click、mouseover、keydown 等。事件处理函数 (listener)&#xff1a…

JVM的垃圾回收机制(GC机制)

在Java代码运行的过程中,JVM发现 某些资源不需要再使用的时候,就会自动把资源所占的内存给回收掉,就不需要程序员自行操作了。“自动回收资源”就是JVM的“垃圾回收机制”,“垃圾回收机制”也称"GC机制"。 对于Java代码…

利用STM32实现语音识别功能

引言 随着物联网和智能设备的普及,语音识别技术正逐渐成为用户交互的主流方式之一。 STM32微控制器具备处理高效率语音识别算法的能力,使其成为实现低成本、低功耗语音交互系统的理想选择。 本教程将介绍如何在STM32平台上开发和部署一个基础的语音识…

SpringMVC 源码剖析

SpringMVC 源码剖析 0 从源码角度分析SpringMVC执行流程 // 前端控制器,SpringMVC最核心的类 public class DispatcherServlet extends FrameworkServlet {// 前端控制器最核心的方法,这个方法是负责处理请求的,一次请求,调用一次…