在k8s中以deployment方式部署minio

server/2024/12/22 20:19:27/

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/server/23671.html

相关文章

Centos编译安装python3.9

Centos编译安装python3.9 2024年4月24日, 当前Linux环境只能下载tar.gz包, 然后编译安装, 不能直接使用yum快速安装 准备相关依赖 yum -y install epel-release yum -y update 安装开发者工具 yum groupinstall "Development Tools" -y yum install openssl-de…

使用pyqt编写的页面导航框架

使用pyqt编写的页面导航框架 效果 介绍代码 效果 介绍 使用pyqt多种控件编写的导航框架,左边是菜单栏,点击不同的菜单选项可以切换到不同的页面。 代码 import sys from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QP…

数据整合与 IT 自动化:工业企业的转型之路

随着信息技术的快速发展,工业企业正面临着数字化转型的挑战和机遇。数据整合和IT自动化成为了工业企业实现高效运营和持续创新的关键。本文将探讨数据整合和IT自动化在工业企业转型中的重要性,并提供一些实践建议。 引言: 在数字化时代&…

【LeetCode刷题记录】简单篇-70-爬楼梯

【题目描述】 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 【测试用例】 示例1: 输入:n 2 输出:2 解释:有两种方法可以爬到楼顶。 1.1阶 1阶…

centos上网卡突然找不到了

问题 今天登录centos突然发现ssh连接不上,在虚拟机中输入ifconfig才发现没有找到对应的网卡ens33了 解决 只需要输入两行命令就可以解决 禁用NetworkManager systemctl stop NetworkManagersystemctl disable NetworkManager 然后重启网络systemctl start netwo…

Ajax 笔记 01

01 ajax的基本使用 ajax五步骤: 1.构建异步请求对象 2.调用open方法 传入请求方式 服务器地址等参数 3.调用send方法 发起网络请求 4.注册请求对象的状态改变事件 5.在状态改变事件里面 判断当前状态 并取得返回值 02 get方式向服务器发送数据 ajax的get方式向服务器提交数据: …

Impala系统架构理解

1 impalad(含3个模块,执行hbase或hdfs中的数据,数据的底层存储为hdfs) 当用户通过用户接口提出查询或分析请求时,Impala会选择一个Impalad实例作为协调者(Coordinator)来负责整个查询过程的协调…

Go语言实战:构建高性能Web应用

Go语言(又称为Golang)因其简洁、高效和强大的并发特性而被广泛用于构建高性能的Web应用。下面是使用Go语言构建一个高性能Web应用的基本步骤,包括环境设置、Web框架选择、实现RESTful API、数据库连接和性能优化。 ### 1. 环境设置 首先&am…