k8s部署单机模式的minio

k8s部署单机模式的minio

  • 一、说明
  • 二、yaml内容
  • 三、步骤
    • 3.1 创建资源
    • 3.2 查看启动日志
    • 3.2 查看svc并访问控制台

一、说明

项目使用minio,准备在k8s环境部署一套minio试用。

1.关于minio的原理和概念参考:
https://mp.weixin.qq.com/s?__biz=MzI3MDM5NjgwNg==&mid=2247487162&idx=1&sn=39c683a43ec2678fbf6d767f6ab6dcc6&chksm=ead0f253dda77b459edaf514cf72fc03546f2c5075c7b131c34b34772ca3517cab170d94c056#rd
2. 官网k8s部署minio方法说明:
https://min.io/docs/minio/kubernetes/upstream/index.html

二、yaml内容

参考:
https://www.jianshu.com/p/2d45990dd652

https://raw.githubusercontent.com/minio/docs/master/source/extra/examples/minio-dev.yaml文档yaml内容:

# Deploys a new Namespace for the MinIO Pod
apiVersion: v1
kind: Namespace
metadata:
  name: minio-dev # Change this value if you want a different namespace name
  labels:
    name: minio-dev # Change this value to match metadata.name
---
# 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: v1
kind: Pod
metadata:
  labels:
    app: minio
  name: minio
  namespace: minio-dev # Change this value to match the namespace metadata.name
spec:
  containers:
  - name: minio
    image: quay.io/minio/minio:latest
    command:
    - /bin/bash
    - -c
    args: 
    - minio server /data --console-address :9090
    volumeMounts:
    - mountPath: /data
      name: localvolume # Corresponds to the `spec.volumes` Persistent Volume
  nodeSelector:
    kubernetes.io/hostname: kubealpha.local # Specify a node label associated to the Worker Node on which you want to deploy the pod.
  volumes:
  - name: localvolume
    hostPath: # MinIO generally recommends using locally-attached volumes
      path: /mnt/disk1/data # Specify a path to a local drive or volume on the Kubernetes worker node
      type: DirectoryOrCreate # The path to the last directory must exist

实际使用到的minio.yaml配置文件:

apiVersion: v1
kind: PersistentVolume
metadata:
  labels:
    app: minio
    release: minio
  name: minio
  namespace: sscs-dev
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 10Gi
  volumeMode: Filesystem
  hostPath:
    path: /home/cicd/sscs-dev/minio
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  # This name uniquely identifies the PVC. Will be used in deployment below.
  name: minio-pv-claim
  labels:
    app: minio-storage-claim
  namespace: sscs-dev
spec:
  # Read more about access modes here: https://kubernetes.io/docs/user-guide/persistent-volumes/#access-modes
  accessModes:
    - ReadWriteOnce
  resources:
    # This is the request for storage. Should be available in the cluster.
    requests:
      storage: 10Gi
  # Uncomment and add storageClass specific to your requirements below. Read more https://kubernetes.io/docs/concepts/storage/persistent-volumes/#class-1
  #storageClassName:
---
apiVersion: apps/v1
kind: Deployment
metadata:
  # This name uniquely identifies the Deployment
  name: minio-deployment
  namespace: sscs-dev
spec:
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: minio
  template:
    metadata:
      labels:
        # Label is used as selector in the service.
        app: minio
    spec:
      # Refer to the PVC created earlier
      volumes:
      - name: storage
        persistentVolumeClaim:
          # Name of the PVC created earlier
          claimName: minio-pv-claim
      imagePullSecrets:
      - name: sscs-secret
      containers:
      - name: minio
        # Pulls the default MinIO image from Docker Hub
        image: artifact.srdcloud.cn/khala_insight-release-docker-local/minio:latest
        # 注意:--console-address ":5000"用来固定控制台访问端口,否则页面会无法访问控制台
        command:
          - /bin/sh
          - -c
          - minio server /data --console-address ":5000"
        args:
        - server
        - /storage
        env:
        # MinIO access key and secret key
        - name: MINIO_ACCESS_KEY
          value: "admin123"
        - name: MINIO_SECRET_KEY
          value: "admin123"

        ports:
        - name: data
          containerPort: 9000
          protocol: "TCP"
        - name: console
          containerPort: 5000
          protocol: "TCP"
        # Mount the volume into the pod
        volumeMounts:
        - name: storage # must match the volume name, above
          mountPath: "/storage"
---
apiVersion: v1
kind: Service
metadata:
  namespace: sscs-dev
  name: minio-service

spec:
  type: NodePort
  ports:
  - name: data
    port: 9000
    targetPort: 9000
    protocol: TCP
  - name: console
    port: 5000
    targetPort: 5000
    protocol: TCP
  selector:
    app: minio

注意事项:
要添加--console-address ":5000"命令参数来固定控制台端口,否则页面会无法访问。

三、步骤

3.1 创建资源

执行命令:kubectl apply -f minio.yaml

3.2 查看启动日志

kubectl get pod -n sscs-dev | grep minio查看pod运行状态,正常:
在这里插入图片描述
kubectl logs -f minio-deployment-54648b586-kxcbn -n sscs-dev查看pod运行日志:
在这里插入图片描述
可以看到控制台端口5000,说明命令参数--console-address ":5000"生效。

3.2 查看svc并访问控制台

执行命令:kubectl get svc -n sscs-dev | grep minio
在这里插入图片描述
yaml中使用的svc是nodePort类型,可以看到以上控制台5000端口映射主机32108端口,则访问地址为: 服务器ip:32108
在这里插入图片描述

出现以上页面表示成功

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

zabbix6.4监控交换机发现ICMP报错Ping item must have target or host interface specified

报错信息: 查看监控项: 修改键值: 保存再次检查,发现又报错/usr/sbin/fping: [2] No such file or directory 原因是,zabbix-server上没有安装fping工具 解决方法:yum install fping -y 之后数据采集正常…

Retrofit的转换器

一、前言 1.为什么要使用Retrofit转换器 在我们接受到服务器的响应后,目前无论是OkHttp还是Retrofit都只能接收到String字符串类型的数据,在实际开发中,我们经常需要对字符串进行解析将其转变为一个JavaBean对象,比如服务器响应…

12、pytest上下文友好的输出

官方实例 # content of test_assert2.py import pytestdef test_set_comparison():set1 set("1308")set2 set("8035")assert set1 set2def test_dict_comparison():dict_1 {name:陈畅,sex:男}dict_2 {name:赵宁,sex:女}assert dict_1 dict_2def tes…

神经网络常用归一化和正则化方法解析(一)

🎀个人主页: https://zhangxiaoshu.blog.csdn.net 📢欢迎大家:关注🔍点赞👍评论📝收藏⭐️,如有错误敬请指正! 💕未来很长,值得我们全力奔赴更美好的生活&…

代理IP和网络加速器的区别有哪些

随着互联网的普及,越来越多的人开始使用网络加速器来提高网络速度。然而,很多人并不清楚代理IP和网络加速器之间的区别。本文将详细介绍两者的概念及区别。 一、代理IP 代理IP是一种通过代理服务器进行网络连接的方式。在使用流冠代理IP时,用…

伴随高性能多级网关和多级分布式缓存架构应用实战经验

随着互联网业务的快速发展,对于高性能网络架构的需求越来越迫切。在这篇文章中,我们将介绍高性能多级网关和多级分布式缓存架构在实际应用中的经验,并提供相关示例代码。 一、高性能多级网关的设计与实现 高性能多级网关是一个重要的网络架构…

软件外包公司的核心竞争力

软件外包公司的核心竞争力可以涵盖多个方面,这取决于公司的战略、专业领域和市场定位。以下是一些可能构成软件外包公司核心竞争力的因素,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1…

js中hasOwnProperty() 方法详解

hasOwnProperty 会返回一个布尔值,判断对象中是否存在该属性,不是继承属性,和原型链上的属性,是对象自身的属性,有返回true,没有返回false hasOwnProperty() 方法是 Object 的原型方法(也称实例方法),它定义在 Object.prototype 对象之上&am…

动能资讯 | 智慧汽车—城市NOA迎爆发

在特斯拉引领的 TransformerBev 架构驱动下,智驾算法趋近于端到端的智驾大模型,使得智能驾驶开始步入城市 NOA 新时代。 消费者认知增强,未来市场空间广阔。伴随城市 NOA 在 23-24 年的落地和普及、L3 法规在年内的落地,行业 0-1…

众里寻她千百度:使用Excalidraw一句话绘制进销存系统采购入库流程

引言: 本文将介绍如何使用Excalidraw这一在线绘图工具来绘制进销存系统中的采购入库流程,帮助您更好地理解和优化采购流程。 正文: 1. 打开Excalidraw网站: 在浏览器中输入"https://excalidraw.com",打开Ex…

聚观早报 |真我GT5 Pro细节曝光;iQOO Neo9系列参数曝光

【聚观365】12月5日消息 真我GT5 Pro细节曝光 iQOO Neo9系列参数曝光 抖音商城双12好物节 蔚来正式获得独立造车资质 三星Galaxy S24 Ultra手写笔获认证 真我GT5 Pro细节曝光 今年的顶级旗舰大比拼也进入最后的高潮,剩余还未亮相的骁龙8 Gen3旗舰新机目前也基…

个体诊所电子处方系统哪个好用,推荐一款可以自由设置配方模板能够填写病历可以查询历史病历的门诊处方笺软件

一、前言 1、功能实用,操作简单,不会电脑也会操作,软件免安装,已内置数据库。 2、中医西医均可用此软件开电子处方,支持病历记录查询,药品进出库管理,支持配方模板一键导入电子处方。 二、电子…

Java 基础学习(五)面向对象编程-对象和类

1 类和对象 1.1 面向对象概述 1.1.1面向对象简史 面向对象编程思想最初的起源可以追溯到1960年的Simula语言,这被认为是第一个支持面向对象编程概念的语言。Simula引入了类、对象、继承等概念,将数据和操作进行封装。Simula的创始人奥利-约翰达尔&…

【数电笔记】09-逻辑代数的基本定律、常用公式

目录 说明: 逻辑代数的基本定律 1. 常量间的运算 2. 逻辑变量与常量的运算 3. 与普通代数相似的定律 4. 摩根定律(反演律) 5. 等式证明方法例题 逻辑代数的常用公式 1. 吸收律 2. 冗余律 3. 示例应用 4. 关于异或运算的一些公式 …

uniapp得app云打包问题

获取appid,具体可以查看详情 也可以配置图标,获取直接生成即可 发行 打包配置 自有证书测试使用时候不需要使用 编译打包 最后找到安装包apk安装到手机 打包前,图片命名使用要非中文,否则无法打包成功会报错

聊聊 Jetpack Compose 原理 -- Compose 是如何将数据转换成 UI 的?

Compose 是一个声明式的 UI 框架,提供了很多开箱即用的组件,比如 Text()、Button、Image() 等等,Compose 会经过几个不同的阶段,最终渲染出 UI 界面。 此转换过程分为【三个阶段】: 组合: 显示什么布局&a…

Dynamics 365 关闭新特性“试用新外观“

微软总是喜欢悄默默上线一些新功能,比如之前的高级设置直接跳转Power apps的管理后台,被骂了一周改回来了。 这次又搞了个试用新外观,但一般这种都是有关闭的地方的,去Power Platform中的环境设置中找了半天没找到。 最终在应用的…

缓冲区溢出及原理

缓冲区缓冲区溢出缓冲区溢出的 C 程序实例缓冲区溢出错误的危害Linux IA32 的进程映像缓冲区溢出的原理 缓冲区 缓冲区是一块用于存取数据的 内存,其位置和长度(大小)在编译时确定 或 在程序运行时动态分配。 缓冲区通常用于存储临时数据&am…

智能优化算法应用:基于吉萨金字塔建造算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于吉萨金字塔建造算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于吉萨金字塔建造算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.吉萨金字塔建造算法4.实验参数设…

新手小白-没有弱口令的挖掘思路

没有弱口令怎么挖?依稀记得有一个很老的思路叫做禁用js可以跳转后台,奈何学习两年半到现在从未发现一个这种漏洞。 不过,虽然不能直接搞到未授权后台登录,但是站有站的设计,小白有小白的打法! 访问某URL ip…