MinIO对象存储 微软AKS
MinIO是一个对象存储解决方案,它提供了与Amazon Web Services S3兼容的API,并支持所有核心S3功能。 MinIO有能力在任何地方部署 - 公有云或私有云,裸金属基础设施,编排环境,以及边缘基础设施。
这个站点上的文档记录了关于`Azure Kubernetes Engine <https://azure.microsoft.com/en-us/products/kubernetes-service/#overview>`__上使用MinIO操作员操作、管理、开发和部署的相关知识。这个最新的MinIO操作员稳定版本为: 7.1.1。
MinIO is released under dual license GNU Affero General Public License v3.0 and MinIO Commercial License. Deploying MinIO through the AKS Marketplace includes the commercial license and access to 24/7 MinIO support through MinIO SUBNET.
如果你需要马上体验,你可以直接使用 minio-console 和我们的 演示服务器 https://play.minio.org.cn,快速体验MinIO。
MinIO演示服务器 是一个 公开 运行了MinIO集群的测试服务器.
任何上传到 MinIO演示服务器 的文件是公开的,您需要注意在演示和测试期间不要上传重要文件和隐私文件,因为其他人可以访问并且我们会定期删除测试数据。
要了解更多如何连接到 MinIO演示服务器 的内容, 请查看 MinIO控制台登录的相关知识.
这是一个部署单节点单磁盘MinIO服务器的步骤,在 Kubernetes 的步骤,主要用于早期快速开发和评估MinIO存储服务器在S3存储层API的兼容性。
同时,还可以使用 MinIO操作员 在Kubernetes上部署和管理MinIO的多租户。
先决条件
- 已有的Kubernetes部署,至少有一个工作节点配备了 最新版 本地连接的驱动器。 
- 本地 - kubectl安装配置,用于在目标Kubernetes部署上创建和访问资源。
- 熟悉Kubernetes环境 
- 熟悉使用终端或Shell环 
执行步骤
- 下载MinIO相关的操作对象 - 下载 minio-dev.yaml 到你操作的服务器上: - curl https://raw.githubusercontent.com/minio/docs/master/source/extra/examples/minio-dev.yaml -O - 该文件描述了两种 Kubernetes 资源: - 一个新的命名空间 - minio-dev, 和
- 一个利用工作节点上的驱动器或卷来提供数据的 MinIO pod 
 - 选择 MinIO 对象存储的 YAML 文件概览 去了解文件对象的详细定义。 - minio-dev.yaml包含以下Kubernetes资源:- # 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 :9001 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-dev, 和
- 一个在Worker Node上使用驱动器或卷来提供数据服务的MinIO Pod 
 - MinIO资源定义使用Kubernetes 节点选择器和标签 将Pod限制为与主机名标签匹配的节点。 使用 - kubectl get nodes --show-labels命令查看集群中每个节点分配的所有标签。- MinIO Pod使用 hostPath 卷来存储数据。此路径 必须 对应于Kubernetes工作节点上的本地驱动器或文件夹。 - 熟悉Kubernetes调度和卷提供的用户可以修改 - spec.nodeSelector,- volumeMounts.name, 和- volumes字段,以满足更具体的要求。
- 应用MinIO对象定义 - 以下命令应用 - minio-dev.yaml配置并将对象部署到Kubernetes:- kubectl apply -f minio-dev.yaml - 这个命令输出应类似于以下内容: - namespace/minio-dev created pod/minio created 
您可以通过运行以下命令来验证Pod的状态
kubectl get pods:kubectl get pods -n minio-dev输出应该类似于以下内容:
NAME READY STATUS RESTARTS AGE minio 1/1 Running 0 77s您也可以使用以下命令来检索 Pod 状态的详细信息:
kubectl describe pod/minio -n minio-dev kubectl logs pod/minio -n minio-dev
- 临时访问 MinIO S3 API 和控制台 - 使用 - kubectl port-forward命令用于将流量从 MinIO pod 临时转发到本地机器:- kubectl port-forward pod/minio 9000 9090 -n minio-dev - 这个命令转发的端口为 9000和9090将其连接到本地机器上相应的端口,同时在Shell中保持活动状态。
- kubectl port-forward此命令仅在 shell 会话中处于活动状态时才有效。
 - 终止会话会关闭本地机器上的端口。 - 备注 - 以下步骤假定了一个活跃的过程 - kubectl port-forward命令.- 要长期访问该Pod,需要进行配置 Ingress 或者在 Kubernetes 内部使用类似的网络控制组件来路由进出 Pod 的流量。配置 Ingress 不在本文档的讨论范围内。 
- 这个命令转发的端口为 
- 通过浏览器访问你的MinIO服务器r - 在本地的电脑上通过浏览器访问 minio-console 可以在网址栏上输入 - http://127.0.0.1:9090打开MinIO控制台.- 登录MinIO控制台的账号密码默认为 - minioadmin | minioadmin. 在这里有关于默认凭证信息的说明 MinIO超级管理员.  
 
                