適用於 OpenShift 的 MinIO 物件儲存
MinIO 是一種物件儲存解決方案,提供與 Amazon Web Services S3 相容的 API,並支援所有核心 S3 功能。MinIO 旨在部署在任何地方 - 公有或私有雲、裸機基礎架構、協調環境和邊緣基礎架構。
本網站記錄透過 Red Hat® OpenShift® Container Platform 4.7+ 在 OpenShift 4.7+ 上部署 MinIO 的操作、管理和開發,以取得 MinIO Operator 的最新穩定版本:6.0.4。
MinIO 以雙重授權方式發布 GNU Affero General Public License v3.0 和 MinIO Commercial License。透過 MinIO SUBNET 註冊的部署使用商業授權,並包含 24/7 MinIO 支援的存取權。
您可以使用 MinIO 主控台 和我們位於 https://play.min.io 的 play
伺服器開始探索 MinIO 功能。play
是執行最新穩定 MinIO 伺服器的公有 MinIO 叢集。任何上傳到 play
的檔案都應被視為公開且不受保護的。如需更多有關連接到 play
的資訊,請參閱 MinIO 主控台 play 登入。
快速入門:適用於 Kubernetes 的 MinIO
此程序會將單節點單磁碟機 MinIO 伺服器部署到 Kubernetes 上,以便早期開發和評估 MinIO 物件儲存及其 S3 相容 API 層。
使用 MinIO Operator 在 Kubernetes 上部署和管理生產就緒的 MinIO 租戶。
先決條件
現有的 Kubernetes 部署,其中至少有一個 Worker 節點具有本機連接的磁碟機。
已設定的本機
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,使用 Worker 節點上的磁碟機或卷宗來提供資料
選取 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
,以及一個 MinIO Pod,使用 Worker 節點上的磁碟機或卷宗來提供資料
MinIO 資源定義使用 Kubernetes 節點選擇器和標籤,將 Pod 限制在具有相符主機名稱標籤的節點上。使用
kubectl get nodes --show-labels
來檢視叢集中每個節點上指派的所有標籤。MinIO Pod 使用 hostPath 卷宗來儲存資料。此路徑必須對應至 Kubernetes Worker 節點上的本機磁碟機或資料夾。
熟悉 Kubernetes 排程和卷宗佈建的使用者可以修改
spec.nodeSelector
、volumeMounts.name
和volumes
欄位,以滿足更特定的需求。套用 MinIO 物件定義
以下命令會套用
minio-dev.yaml
設定,並將物件部署到 Kuberneteskubectl apply -f minio-dev.yaml
命令輸出應如下所示
namespace/minio-dev created pod/minio created
您可以執行
kubectl get pods
來驗證 Pod 的狀態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
當命令在 Shell 中處於作用中時,該命令會將 Pod 的連接埠
9000
和9090
轉送到本機上相符的連接埠。kubectl port-forward
命令僅在 Shell 工作階段中處於作用中時才會運作。終止工作階段會關閉本機上的連接埠。注意
此程序的下列步驟假設
kubectl port-forward
命令處於作用中。若要設定對 Pod 的長期存取,請在 Kubernetes 內設定 Ingress 或類似的網路控制元件,以將流量路由至 Pod 和從 Pod 路由流量。設定 Ingress 不在此文件的範圍內。
將您的瀏覽器連線至 MinIO 伺服器
透過在本機上開啟瀏覽器,並導覽至
http://127.0.0.1:9001
,來存取 MinIO 主控台。使用憑證
minioadmin | minioadmin
登入主控台。這些是預設的 根使用者 憑證。您可以使用 MinIO 主控台來執行一般管理工作,例如身分與存取管理、指標和記錄監控,或伺服器設定。每個 MinIO 伺服器都包含其自己的內嵌 MinIO 主控台。
如需更多資訊,請參閱 MinIO 主控台 文件。
(選用) 連線 MinIO 用戶端
如果您的本機已
mc
安裝,請使用mc alias set
命令來驗證並連線至 MinIO 部署mc alias set k8s-minio-dev http://127.0.0.1:9000 minioadmin minioadmin mc admin info k8s-minio-dev