K8S中使用helm安装MinIO

这篇具有很好参考价值的文章主要介绍了K8S中使用helm安装MinIO。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

注意事项

使用helm部署MinIO分为两部分

  • helm部署MinIO operator,用来管理tenant(K8S集群中只能部署一个)
  • helm部署MinIO tenant,真实的MinIO Cluster(K8S集群中可以部署多个)

使用helm部署到K8S集群,则需要考虑如何暴露服务的问题。官方文档helm安装步骤是通过修改service nodePort配置,暴露服务。但也可以考虑部署ingress-nginx之类的ingress,MinIO helm配置文件中提供了指定ingress的参数。

本地Helm Chart部署MinIO

1.下载Helm Chart到本地

curl -O https://raw.githubusercontent.com/minio/operator/master/helm-releases/operator-5.0.11.tgz

Chart包含values.yaml文件,可以通过修改配置文件满足定制化需求。

解压后的文件,包含operator和tenant的Helm Chart。

2.部署ingress-nginx

helm upgrade ingress-minio-test -n minio-tenant-default ./ingress-nginx \
--set controller.image.tag=v1.4.0 \
--set controller.ingressClassResource.name=ingress-minio-test \
--set controller.ingressClassResource.controllerValue=k8s.io/ingress-minio-test \
--set controller.replicaCount=3 \
--set controller.service.enabled=false \
--set controller.scope.enabled=false \
--set controller.metrics.enabled=true \
--set controller.electionID=ingress-minio-test \
--set controller.nodeSelector.nodetype=minio-node \
--set controller.image.registry=k8s.gcr.io \
--set controller.image.image=ingress-nginx/controller \
--set controller.metrics.serviceMonitor.namespace=minio-ingress-test \
--description "install ingress-nginx 1.4.0"

下载ingress-nginx Helm Chart

wget https://github.com/kubernetes/ingress-nginx/releases/download/helm-chart-4.9.0/ingress-nginx-4.9.0.tgz

 

3.部署Operator

helm install \
--namespace minio-operator \
--set operator.image.repository=quay.io/minio/operator \
--set operator.image.tag=v5.0.9 \
--set operator.nodeSelector.minioowner=minio \
--set console.image.repository=quay.io/minio/operator \
--set console.image.tag=v5.0.9 \
--set console.nodeSelector.minioowner=minio \
--set console.ingress.enabled=true \
--set console.ingress.ingressClassName=ingress-minio-test \
--set console.ingress.host=minio-operator-test1.mytest.com \
minio-operator operator-5.0.9.tgz

4.部署Tenant

helm install \
--namespace minio-tenant-default \
--set tenant.name=minio-tenant-default \
--set tenant.image.repository=quay.io/minio/operator \
--set tenant.image.tag=RELEASE.2023-09-07T02-05-02Z \
--set tenant.pools[0].storageClassName=cbs \
--set tenant.pools[0].nodeSelector.minioowner=minio \
--set tenant.certificate.requestAutoCert=false \
--set tenant.env[0].name=MINIO_SERVER_URL \
--set tenant.env[0].value=http://minio-api-test1.mytest.com:80 \
--set tenant.env[1].name=MINIO_STORAGE_CLASS_STANDARD \
--set tenant.env[1].value=EC:8 \
--set tenant.configuration.name=minio-config-prod \
--set secrets.existingSecret=minio-config-prod \
--set ingress.api.enabled=true \
--set ingress.api.ingressClassName=ingress-minio-test \
--set ingress.api.host=minio-api-test1.mytest.com \
--set ingress.console.enabled=true \
--set ingress.console.ingressClassName=ingress-minio-test \
--set ingress.console.host=minio-console-test1.mytest.com \
minio-tenant-default tenant-5.0.9.tgz

指定storageClass

--set tenant.pools[0].storageClassName=cbs \

 MinIO通过storageClass 创建PV,最小部署会创建16块PV,挂载到4个POD上。

通过ingress暴露服务

--set ingress.api.enabled=true \
--set ingress.api.ingressClassName=ingress-minio-test \
--set ingress.api.host=minio-api-test1.mytest.com \
--set ingress.console.enabled=true \
--set ingress.console.ingressClassName=ingress-minio-test \
--set ingress.console.host=minio-console-test1.mytest.com \

MinIO域名分为console域名和api域名,console域名默认调用服务9001端口,api域名默认调用服务9000端口。

ingress.api.enabled=true #开启通过ingress暴露api服务
ingress.api.ingressClassName=ingress-minio-test #指定ingress-nginx的ingressClassName
ingress.api.host=minio-api-test1.mytest.com #自定义api服务域名
ingress.console.enabled=true #开启通过ingress暴露console服务
ingress.console.ingressClassName=ingress-minio-test #指定ingress-nginx的ingressClassName
ingress.console.host=minio-console-test1.mytest.com #自定义console服务域名

环境变量参数配置

MinIO服务配置参数

MinIO大部分配置参数都是通过环境变量配置的,所以可以通过--set tenant.env[x].name 设置环境变量名,通过--set tenant.env[x].value 设置环境变量值

配置MINIO_SERVER_URL

参考文档:MinIO Console Settings — MinIO Object Storage for Linux

MINIO_SERVER_URL 用于指定MinIO Share功能反馈的URL中的域名。可以通过此域名下载MinIO中的文件。

如果不设置,域名默认为K8S service内部域名,无法用于集群外部下载文件。

--set tenant.env[0].name=MINIO_SERVER_URL \
--set tenant.env[0].value=http://minio-api-test1.mytest.com:80 \

K8S中使用helm安装MinIO,MinIO,kubernetes,MinIO

配置MinIO奇偶校验分片

配置文档:Erasure Code Settings — MinIO Object Storage for Linux

什么是奇偶校验分片?纠删码文档:Erasure Coding — MinIO Object Storage for Linux

默认值EC:4,此参数可不修改。如果为了提高数据可用性,可以提高EC的值。但是同样会减少实际可用空间。简单来说这就是设置数据冗余的比例。

--set tenant.env[1].name=MINIO_STORAGE_CLASS_STANDARD \
--set tenant.env[1].value=EC:8 \

 

设置用户名和密码

参考文档:Root Access Settings — MinIO Object Storage for Linux

默认用户名:minio;密码minio123

用于生产环境时一定要修改,默认情况下minio用户密码非常简单,拥有最高权限,存在安全风险。

修改用户名和密码有两种方式:

  1. helm参数设置,明文设置,通过helm命令即可拿到明文用户名密码
  2. 通过环境变量设置。缺点就是明文配置,可以通过kubectl直接查看到。
  3. 推荐)通过创建K8S secret,配置账号密码。虽然也有方式解密密文,但是比直接明文安全。

1.helm参数设置

--set secrets.accessKey=miniouser \
--set secrets.secretKey=miniouser@123 \

2.环境变量设置

--set tenant.env[3].name=MINIO_ROOT_USER \
--set tenant.env[3].value=minioadmin \
--set tenant.env[4].name=MINIO_ROOT_PASSWORD \
--set tenant.env[4].value=minioadmin@123 \

3.K8S secret设置

在MinIO tenant 的Helm Chart的values.yaml文件的最后,给出了创建secret的示例。

可以参考示例,创建secret。

实际上所有需要环境变量配置的参数,都可以用一样的格式写到secret中。

K8S中使用helm安装MinIO,MinIO,kubernetes,MinIO

在values.yaml文件的开头,也给出了引用secret的方法。

K8S中使用helm安装MinIO,MinIO,kubernetes,MinIO

--set tenant.configuration.name=minio-config-prod \
--set secrets.existingSecret=minio-config-prod \

Helm Chart中templates/tenant-configuration.yaml文件也可以看出,如果没有设置secrets.existingSecret,那么此yaml文件就会拿secrets.accessKey和secrets.secretKey的值作为用户名和密码。

K8S中使用helm安装MinIO,MinIO,kubernetes,MinIO

参考文档

Deploy Operator With Helm — MinIO Object Storage for Kubernetes 文章来源地址https://www.toymoban.com/news/detail-809288.html

到了这里,关于K8S中使用helm安装MinIO的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • k8s学习-第4部分Helm(Helm安装MySQL集群)

    Helm简介 Helm 是一个 Kubernetes 应用的包管理工具,类似于 Ubuntu 的 APT 和 CentOS 中的 YUM。 Helm使用chart 来封装kubernetes应用的 YAML 文件,我们只需要设置自己的参数,就可以实现自动化的快速部署应用。 三大概念 Chart 代表着 Helm 包。 它包含运行应用程序需要的所有资源定义和依

    2024年02月08日
    浏览(81)
  • k8s包管理工具helm简介及基本使用

     helm是k8s的包管理工具,类似于centos 的yum;  当前版本有helm2、helm3 相对来说helm3功能更加完善,使用更加方便 主要作用是相较于传统的k8s部署应用需要手工编排yaml文件(比如Deployment.yml、service.yml、ingress.yml等),使用helm可以快速部署应用。 helm3与helm2 的区别在于helm3删除了

    2024年02月14日
    浏览(36)
  • k8s实战3-使用Helm在AKS上发布应用

    AKS(Azure Kubenetes Service)是微软云azure上的K8s服务。 主要分为三步 1 连接到AKS 2 用kubectl发布应用 3 用Helm发布应用 1 登录 az login 2 连接 dp-npr-dsm-aks(Dsm项目的AKS) az account set --subscription {{subID}} az aks get-credentials --resource-group {{resource-group-name}} --name {{aks-name}} --admin 3 测试是否连接成

    2024年02月13日
    浏览(33)
  • helm、k8s dasboard、rancher、kubesphere介绍及使用

    简单介绍 helm 部署使用 及 k8s dashboard 安装部署 简单介绍 rancher 和 Kubesphere k8s 集群管理平台部署及使用 对比 rancher 和 kubesphere 两款 k8s 集群集群管理工具提出自己的见解 下载helm二进制包 官方下载地址 1.1.1 添加仓库 Dashboard 支持 Kubeconfig 和 Token 两种认证方式,这里选择Token认

    2023年04月08日
    浏览(40)
  • k8s使用helm部署Harbor镜像仓库并启用SSL

    参照:https://zhaoll.blog.csdn.net/article/details/128155767 有多种安装方式,根据自己的k8s版本选择合适的helm版本 参考:https://blog.csdn.net/qq_30614345/article/details/131669319 我们这里使用helm安装harbor,项目地址:https://github.com/goharbor/harbor-helm (1)拉取项目文件 (2)解压并修改配置 tar -z

    2024年02月16日
    浏览(39)
  • 使用k8s helm离线部署spark-operator(私有仓库)

    将制作的镜像上传到目的机器中,加载镜像 打标签其中xxxx.xxx/xx/为私有仓库的地址 将制作好的镜像推到私有仓库中 Github地址: 下载上传到机器中 解压spark-operator-1.1.27.tgz,修改values.yaml内容,修改副本数量为3、镜像源、利用伪亲和性使得三个副本在三台机器上。 修改Chart

    2024年02月09日
    浏览(39)
  • 【Kubernetes】k8s使用minio作为对象存储

    k8s version:v1.20.15 minio version :v4.4.16 (1)安装kubectl-minio插件 自选minio-operaterd的版本下载包 minio-operater plugin 访问地址:http://ip:9090 1、sc-minio.yaml 创建 2、 创建所需的永久卷 序号 路径 容量 (G) 说明 所在节点 1 /data/1 5 租户使用 3个节点各1个 2 /data/log1 5 租户使用 3个节点各1个

    2024年04月09日
    浏览(49)
  • 使用 Jenkins、Gitlab、Harbor、Helm、k8s 来实现流水线作业

    使用 Jenkins、Gitlab、Harbor、Helm、Kubernetes 来实现一个完整的持续集成和持续部署的流水线作业 开发人员提交代码到 Gitlab 代码仓库 通过 Gitlab 配置的 Jenkins Webhook 触发 Pipeline 自动构建 Jenkins 触发构建构建任务,根据 Pipeline 脚本定义分步骤构建 先进行代码静态分析,单元测试

    2024年04月27日
    浏览(42)
  • 如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 2

    在 Part 1 中,我们一起了解了什么是 Prometheus 和 Grafana,以及使用这些工具的前提条件和优势。在本部分,将继续带您学习如何安装 Helm 以及如何使用 Prometheus Helm Charts。   ArtifactHub 为 Helm Chart 提供了公共和私有资源库。我们将使用这些 Helm Chart 来设置 Kubernetes 集群中的 pod 和

    2024年02月03日
    浏览(42)
  • 如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 3

    在本教程的前两部分,我们分别了解和学习了Prometheus 和 Grafana 的基本概念和使用的前提条件,以及使用 Helm 在 Kubernetes 上安装 Prometheus。   在今天的教程中,我们将为你介绍以下内容:   安装 Grafana; 集成 Prometheus 和 Grafana,Grafana 将使用 Prometheus 作为数据源; 使用 Grafan

    2024年01月22日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包