文件

升級舊版 MinIO 運算元

MinIO 支援舊版 MinIO 運算元的以下升級路徑

目前版本

支援的升級目標

5.0.15 或更新版本

6.0.4

5.0.0 到 5.0.14

5.0.15

4.2.3 到 4.5.7

4.5.8

4.0.0 到 4.2.2

4.2.3

3.X.X

4.2.2

若要從版本 4.5.7 或更早版本的運算元升級到 6.0.4,您必須先升級到版本 4.5.8,然後升級到 5.0.15。根據您目前的版本,您可能需要執行一個或多個中間升級才能達到 v4.5.8。

升級到 5.0.15 後,請參閱升級 MinIO 運算元以升級到最新版本。

將 MinIO 運算元 4.5.8 及更新版本升級到 5.0.15

先決條件

此程序需要以下條件

  • 您現有的 MinIO 運算元部署正在執行 4.5.8 或更新版本

  • 您的 Kubernetes 叢集正在執行 1.21.0 或更新版本

  • 您的本機主機已安裝 kubectl 並已設定為可以存取 Kubernetes 叢集

此程序會將 MinIO 運算元從任何 4.5.8 或更新版本升級到 5.0.15

租戶自訂資源定義變更

以下變更適用於運算元 v5.0.0 或更新版本

  • .spec.s3 欄位已由 .spec.features 欄位取代。

  • .spec.credsSecret 欄位已由 .spec.configuration 欄位取代。

    .spec.credsSecret 應該保留 MinIO 部署的所有環境變數,其中包含敏感資訊,並且不應顯示在 .spec.env 中。此變更會影響租戶 CRD,並且僅影響直接編輯租戶 YAML 的使用者,例如透過 Helm 或 Kustomize。

  • 記錄搜尋 API (.spec.log) 和 Prometheus (.spec.prometheus) 部署都已移除。但是,現有的部署會以獨立部署/有狀態集的方式執行,與租戶 CR 沒有連線。刪除租戶 CRD 不會連鎖到記錄或 Prometheus 部署。

    重要

    MinIO 建議您建立 yaml 檔案來管理這些部署。

記錄搜尋和 Prometheus

最新版本的運算元已從包含的運算元工具中移除記錄搜尋和 Prometheus。下列步驟會備份現有的 yaml 檔案、執行一些清除,並提供繼續使用其中一個或兩個功能的步驟。

  1. 備份 Prometheus 和記錄搜尋 yaml 檔案。

    export TENANT_NAME=myminio
    export NAMESPACE=mynamespace
    kubectl -n $NAMESPACE get secret $TENANT_NAME-log-secret -o yaml > $TENANT_NAME-log-secret.yaml
    kubectl -n $NAMESPACE get cm $TENANT_NAME-prometheus-config-map -o yaml > $TENANT_NAME-prometheus-config-map.yaml
    kubectl -n $NAMESPACE get sts $TENANT_NAME-prometheus -o yaml > $TENANT_NAME-prometheus.yaml
    kubectl -n $NAMESPACE get sts $TENANT_NAME-log -o yaml > $TENANT_NAME-log.yaml
    kubectl -n $NAMESPACE get deployment $TENANT_NAME-log-search-api -o yaml > $TENANT_NAME-log-search-api.yaml
    kubectl -n $NAMESPACE get svc $TENANT_NAME-log-hl-svc -o yaml > $TENANT_NAME-log-hl-svc.yaml
    kubectl -n $NAMESPACE get svc $TENANT_NAME-log-search-api -o yaml > $TENANT_NAME-log-search-api-svc.yaml
    kubectl -n $NAMESPACE get svc $TENANT_NAME-prometheus-hl-svc -o yaml > $TENANT_NAME-prometheus-hl-svc.yaml
    
    • myminio 取代為您要升級的運算元部署中租戶的名稱。

    • mynamespace 取代為您要升級的運算元部署中租戶的命名空間。

    針對每個租戶重複執行。

  2. 移除所有租戶的所有備份檔案的 .metadata.ownerReferences

  3. (選用)若要繼續使用記錄搜尋 API 和 Prometheus,請將下列變數新增至 .spec.env 下的租戶 yaml 規格檔案中

    使用下列命令編輯租戶

    kubectl edit tenants <TENANT-NAME> -n <TENANT-NAMESPACE>
    
    • <TENANT-NAME> 替換為要修改的租戶名稱。

    • <TENANT-NAMESPACE> 替換為您要修改的租戶的命名空間。

    在檔案中的 .spec.env 下新增下列值

    - name: MINIO_LOG_QUERY_AUTH_TOKEN
      valueFrom:
        secretKeyRef:
          key: MINIO_LOG_QUERY_AUTH_TOKEN
          name: <TENANT_NAME>-log-secret
    - name: MINIO_LOG_QUERY_URL
      value: http://<TENANT_NAME>-log-search-api:8080
    - name: MINIO_PROMETHEUS_JOB_ID
      value: minio-job
    - name: MINIO_PROMETHEUS_URL
      value: http://<TENANT_NAME>-prometheus-hl-svc:9001
    
    • namevalue 行中的 <TENANT_NAME> 替換為您的租戶名稱。

步驟

以下步驟使用 Kustomize 升級 MinIO Operator。

對於使用 MinIO Kubernetes 外掛程式安裝的 Operator 5.0.1 至 5.0.14 版本,請按照以下 Kustomize 指示升級至 5.0.15 或更新版本。如果您使用 Helm 安裝 Operator,請改為使用 使用 Helm 升級 指示。

  1. (選用) 將每個 MinIO 租戶更新至最新的穩定 MinIO 版本。

    定期升級 MinIO 可確保您的租戶擁有最新的功能和效能改進。在將升級套用於您的生產租戶之前,請先在較低的環境(例如開發或 QA 租戶)中測試升級。如需升級 MinIO 租戶的步驟,請參閱升級 MinIO 租戶

  2. 驗證現有的 Operator 安裝。使用 kubectl get all -n minio-operator 來驗證所有 Operator Pod 和服務的健康狀況和狀態。

    如果您將 Operator 安裝到自訂命名空間,請將該命名空間指定為 -n <NAMESPACE>

    您可以透過擷取命名空間中 Operator Pod 的物件規格來驗證目前安裝的 Operator 版本。以下範例使用 jq 工具從 kubectl 中篩選出必要的資訊

    kubectl get pod -l 'name=minio-operator' -n minio-operator -o json | jq '.items[0].spec.containers'
    

    輸出結果類似如下

    {
       "env": [
          {
             "name": "CLUSTER_DOMAIN",
             "value": "cluster.local"
          }
       ],
       "image": "minio/operator:v6.0.4",
       "imagePullPolicy": "IfNotPresent",
       "name": "minio-operator"
    }
    

    如果您的本機主機未安裝 jq 公用程式,您可以執行命令的第一部分,然後找到輸出的 spec.containers 區段。

  3. 使用 Kustomize 升級 Operator

    以下命令將 Operator 升級至 5.0.15 版

    kubectl apply -k github.com/minio/operator/?ref=v5.0.15
    

    在下面的範例輸出中,行尾的 configured 表示已從更新的 CRD 套用新的變更。

    namespace/minio-operator configured
    customresourcedefinition.apiextensions.k8s.io/miniojobs.job.min.io configured
    customresourcedefinition.apiextensions.k8s.io/policybindings.sts.min.io configured
    customresourcedefinition.apiextensions.k8s.io/tenants.minio.min.io configured
    serviceaccount/console-sa unchanged
    serviceaccount/minio-operator unchanged
    clusterrole.rbac.authorization.k8s.io/console-sa-role unchanged
    clusterrole.rbac.authorization.k8s.io/minio-operator-role unchanged
    clusterrolebinding.rbac.authorization.k8s.io/console-sa-binding unchanged
    clusterrolebinding.rbac.authorization.k8s.io/minio-operator-binding unchanged
    configmap/console-env unchanged
    secret/console-sa-secret configured
    service/console unchanged
    service/operator unchanged
    service/sts unchanged
    deployment.apps/console configured
    deployment.apps/minio-operator configured
    
  4. 驗證 Operator 升級

    您可以使用先前使用的相同 kubectl 命令檢查新的 Operator 版本

    kubectl get pod -l 'name=minio-operator' -n minio-operator -o json | jq '.items[0].spec.containers'
    
  5. (選用) 連線到 Operator 主控台

    Operator 主控台服務不會自動繫結或公開其本身以供 Kubernetes 叢集上的外部存取。相反地,您必須設定網路控制平面元件(例如負載平衡器或輸入),才能授予外部存取權。

    為了測試目的或短期存取,請使用以下修補程式透過 NodePort 公開 Operator 主控台服務

    kubectl patch service -n minio-operator console -p '
    {
        "spec": {
            "ports": [
                {
                    "name": "http",
                    "port": 9090,
                    "protocol": "TCP",
                    "targetPort": 9090,
                    "nodePort": 30090
                },
                {
                    "name": "https",
                    "port": 9443,
                    "protocol": "TCP",
                    "targetPort": 9443,
                    "nodePort": 30433
                }
            ],
            "type": "NodePort"
        }
    }'
    

    套用路徑後,您可以在任何 Kubernetes 工作節點上透過連接埠 30433 來存取服務。

    nodePort 值附加到 Kubernetes 叢集中工作節點的外部可存取 IP 位址。根據您是否使用 TLS 部署了 Operator 主控台,使用適當的 httphttps 連接埠。

  6. 擷取用於登入的 Operator 主控台 JWT

若要繼續升級至 6.0.4,請參閱升級 MinIO Operator

使用以下命令擷取登入 Operator 主控台所需的 JSON Web Token (JWT)

kubectl get secret/console-sa-secret -n minio-operator -o json | jq -r '.data.token' | base64 -d

如果您的本機主機未安裝 jq 公用程式,您可以執行此命令的 kubectl 部分 (在 | jq 之前),並找到輸出的 data.token 區段。

以下步驟使用 Helm 升級現有的 MinIO Operator 安裝。

如果您使用 Kustomize 安裝了 Operator,請改為使用 使用 Kustomize 升級 指示。

  1. (選用) 將每個 MinIO 租戶更新至最新的穩定 MinIO 版本。

    定期升級 MinIO 可確保您的租戶擁有最新的功能和效能改進。在將升級套用於您的生產租戶之前,請先在較低的環境(例如開發或 QA 租戶)中測試升級。如需升級 MinIO 租戶的步驟,請參閱升級 MinIO 租戶

  2. 驗證現有的 Operator 安裝。

    使用 kubectl get all -n minio-operator 來驗證所有 Operator Pod 和服務的健康狀況和狀態。

    如果您將 Operator 安裝到自訂命名空間,請將該命名空間指定為 -n <NAMESPACE>

    使用 helm list 命令來檢視命名空間中安裝的圖表

    helm list -n minio-operator
    

    結果應類似如下

    NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
    operator        minio-operator  1               2023-11-01 15:49:54.539724775 -0400 EDT deployed        operator-5.0.x v5.0.x
    
  3. 更新 Operator 存放庫

    使用 helm repo update minio-operator 來更新 MinIO Operator 存放庫。如果您為 MinIO Operator 存放庫設定了不同的別名,請在命令中指定該別名,而不是 minio-operator。您可以使用 helm repo list 來檢閱已安裝的存放庫。

    在更新 Operator 存放庫後,使用 helm search 檢查最新的可用圖表版本

    helm search repo minio-operator
    

    回應應類似如下

    NAME                            CHART VERSION   APP VERSION     DESCRIPTION
    minio-operator/minio-operator   4.3.7           v4.3.7          A Helm chart for MinIO Operator
    minio-operator/operator         6.0.4          v6.0.4         A Helm chart for MinIO Operator
    minio-operator/tenant           6.0.4          v6.0.4         A Helm chart for MinIO Operator
    

    minio-operator/minio-operator 是舊版圖表,在正常情況下不應安裝。

  4. 執行 helm upgrade

    Helm 使用最新的圖表來升級 MinIO Operator

    helm upgrade -n minio-operator \
      operator minio-operator/operator
    

    如果您將 MinIO Operator 安裝到不同的命名空間,請在 -n 引數中指定該命名空間。

    如果您使用了與 operator 不同的安裝名稱,請將上述值替換為安裝名稱。

    命令結果應傳回成功,並且 REVISION 值會增加。

  5. 驗證 Operator 升級

    Operator 主控台服務不會自動繫結或公開其本身以供 Kubernetes 叢集上的外部存取。相反地,您必須設定網路控制平面元件(例如負載平衡器或輸入),才能授予外部存取權。

    為了測試目的或短期存取,請使用以下修補程式透過 NodePort 公開 Operator 主控台服務

    kubectl patch service -n minio-operator console -p '
    {
        "spec": {
            "ports": [
                {
                    "name": "http",
                    "port": 9090,
                    "protocol": "TCP",
                    "targetPort": 9090,
                    "nodePort": 30090
                },
                {
                    "name": "https",
                    "port": 9443,
                    "protocol": "TCP",
                    "targetPort": 9443,
                    "nodePort": 30433
                }
            ],
            "type": "NodePort"
        }
    }'
    

    套用路徑後,您可以在任何 Kubernetes 工作節點上透過連接埠 30433 來存取服務。

    nodePort 值附加到 Kubernetes 叢集中工作節點的外部可存取 IP 位址。根據您是否使用 TLS 部署了 Operator 主控台,使用適當的 httphttps 連接埠。

  6. 擷取用於登入的 Operator 主控台 JWT

    使用以下命令擷取登入 Operator 主控台所需的 JSON Web Token (JWT)

    kubectl get secret/console-sa-secret -n minio-operator -o json | jq -r '.data.token' | base64 -d
    

    如果您的本機主機未安裝 jq 公用程式,您可以執行此命令的 kubectl 部分 (在 | jq 之前),並找到輸出的 data.token 區段。

將 MinIO Operator 4.2.3 至 4.5.7 版本升級至 4.5.8

先決條件

此程序需要以下條件

  • 您有一個正在執行 4.2.3 至 4.5.7 版本的現有 MinIO Operator 部署

  • 您的 Kubernetes 叢集執行 1.19.0 或更新版本

  • 您的本機主機已安裝 kubectl 並已設定為可以存取 Kubernetes 叢集

步驟

此步驟將 MinIO Operator 4.2.3 至 4.5.7 版本升級至 4.5.8 版本。然後您可以從 4.5.8 版本升級至 5.0.15 版本。

  1. (選用) 將每個 MinIO 租戶更新至最新的穩定 MinIO 版本。

    定期升級 MinIO 可確保您的租戶擁有最新的功能和效能改進。

    在將升級套用於您的生產租戶之前,請先在較低的環境(例如開發或 QA 租戶)中測試升級。

    如需升級 MinIO 租戶的步驟,請參閱升級 MinIO 租戶

  2. 驗證現有的 Operator 安裝。

    使用 kubectl get all -n minio-operator 來驗證所有 Operator Pod 和服務的健康狀況和狀態。

    如果您將 Operator 安裝到自訂命名空間,請將該命名空間指定為 -n <NAMESPACE>

    您可以透過擷取命名空間中 Operator Pod 的物件規格來驗證目前安裝的 Operator 版本。以下範例使用 jq 工具從 kubectl 中篩選出必要的資訊

    kubectl get pod -l 'name=minio-operator' -n minio-operator -o json | jq '.items[0].spec.containers'
    

    輸出結果類似如下

    {
       "env": [
          {
             "name": "CLUSTER_DOMAIN",
             "value": "cluster.local"
          }
       ],
       "image": "minio/operator:v4.5.1",
       "imagePullPolicy": "IfNotPresent",
       "name": "minio-operator"
    }
    
  3. 下載最新穩定版本的 MinIO Kubernetes 外掛程式

    您可以使用 Kubernetes Krew 外掛程式管理員安裝 MinIO 外掛程式,或手動將外掛程式二進位檔下載並安裝到您的本機主機

    Krew 是由 Kubernetes SIG CLI 群組開發的 kubectl 外掛程式管理員。如需特定指示,請參閱 krew 安裝文件。您可以使用適用於 Linux、macOS 和 Windows 作業系統的 Krew 外掛程式。

    您可以使用 Krew,透過以下命令安裝 MinIO kubectl 外掛程式

    kubectl krew update
    kubectl krew install minio
    

    如果您想要使用 Krew 更新 MinIO 外掛程式,請使用以下命令

    kubectl krew upgrade minio
    

    您可以將 MinIO kubectl 外掛程式下載到您的本機系統路徑。kubectl CLI 會自動探索並執行相容的外掛程式。

    以下程式碼會下載最新版本的 MinIO Kubernetes 外掛程式,並將其安裝到系統路徑

    curl https://github.com/minio/operator/releases/download/v5.0.14/kubectl-minio_5.0.14_linux_amd64 -o kubectl-minio
    chmod +x kubectl-minio
    mv kubectl-minio /usr/local/bin/
    

    根據已驗證使用者的權限,上述 mv 命令可能需要 sudo 權限提升。

    執行以下命令來驗證外掛程式的安裝

    kubectl minio version
    

    輸出結果應將 Operator 版本顯示為 5.0.14。

    您可以將 MinIO kubectl 外掛程式下載到您的本機系統路徑。kubectl CLI 會自動探索並執行相容的外掛程式。

    以下 PowerShell 命令會下載最新版本的 MinIO Kubernetes 外掛程式,並將其安裝到系統路徑

    Invoke-WebRequest -Uri "https://github.com/minio/operator/releases/download/v5.0.14/kubectl-minio_5.0.14_windows_amd64.exe" -OutFile "C:\kubectl-plugins\kubectl-minio.exe"
    

    確保外掛程式資料夾的路徑包含在 Windows PATH 中。

    執行以下命令來驗證外掛程式的安裝

    kubectl minio version
    

    輸出結果應將 Operator 版本顯示為 5.0.14。

  4. 執行初始化命令以升級 Operator

    使用 kubectl minio init 命令來升級現有的 MinIO Operator 安裝

    kubectl minio init
    
  5. 驗證 Operator 升級

    您可以透過檢閱先前步驟中 Operator Pod 的物件規格來檢查 Operator 版本。

    連接埠轉送

    Operator 主控台服務不會自動繫結或公開其本身以供 Kubernetes 叢集上的外部存取。相反地,請設定網路控制平面元件(例如負載平衡器或輸入),以授予外部存取權。

    為了測試目的或短期存取,請使用以下修補程式透過 NodePort 公開 Operator 主控台服務

    kubectl patch service -n minio-operator console -p '
    {
        "spec": {
            "ports": [
                {
                    "name": "http",
                    "port": 9090,
                    "protocol": "TCP",
                    "targetPort": 9090,
                    "nodePort": 30090
                },
                {
                    "name": "https",
                    "port": 9443,
                    "protocol": "TCP",
                    "targetPort": 9443,
                    "nodePort": 30433
                }
            ],
            "type": "NodePort"
        }
    }'
    

    修補程式命令應輸出 service/console patched。您現在可以在任何 Kubernetes 工作節點上透過連接埠 30433 (HTTPS) 或 30090 (HTTP) 來存取服務。

    例如,具有下列 Operator 節點的 Kubernetes 叢集可以在 https://172.18.0.2:30443 存取

    kubectl get nodes -o custom-columns=IP:.status.addresses[:]
    IP
    map[address:172.18.0.5 type:InternalIP],map[address:k3d-MINIO-agent-3 type:Hostname]
    map[address:172.18.0.6 type:InternalIP],map[address:k3d-MINIO-agent-2 type:Hostname]
    map[address:172.18.0.2 type:InternalIP],map[address:k3d-MINIO-server-0 type:Hostname]
    map[address:172.18.0.4 type:InternalIP],map[address:k3d-MINIO-agent-1 type:Hostname]
    map[address:172.18.0.3 type:InternalIP],map[address:k3d-MINIO-agent-0 type:Hostname]
    

    使用以下命令擷取登入 Operator 主控台所需的 JWT 權杖

    kubectl get secret/console-sa-secret -n minio-operator -o json | jq -r '.data.token' | base64 -d
    

    如果您的本機主機未安裝 jq 公用程式,您可以執行此命令的 kubectl 部分 (在 | jq 之前),並找到輸出的 data.token 區段。

將 MinIO Operator 4.0.0 至 4.2.2 版本升級至 4.2.3

先決條件

此步驟假設

  • 您有一個正在執行 4.0.0 至 4.2.2 之間任何版本的現有 MinIO Operator 部署

  • 您的 Kubernetes 叢集執行 1.19.0 或更新版本

  • 您的本機主機已安裝 kubectl 並已設定為可以存取 Kubernetes 叢集

程序

此程序涵蓋將 MinIO Operator 從 4.0.0 至 4.2.2 任何版本升級至 4.2.3 所需的步驟。接著您可以執行升級 MinIO Operator 5.0.15 至 6.0.4 來完成升級至 6.0.4。

4.0.0 - 4.2.2 的安裝沒有直接升級至 6.0.4 的路徑。

  1. (選用) 將每個 MinIO 租戶更新至最新的穩定 MinIO 版本。

    定期升級 MinIO 可確保您的租戶擁有最新的功能和效能改進。在將升級套用至您的生產租戶之前,請先在較低的環境(例如開發或 QA 租戶)中測試升級。

    如需升級 MinIO 租戶的步驟,請參閱升級 MinIO 租戶

  2. 檢查每個租戶池的安全上下文

    使用以下命令驗證每個託管 MinIO 租戶的規格

    kubectl get tenants <TENANT-NAME> -n <TENANT-NAMESPACE> -o yaml
    

    如果租戶不存在 spec.pools.securityContext 欄位,則租戶 Pod 很可能以 root 身分執行。

    作為 4.2.3 及更高版本系列的一部分,Pod 會以作為 Operator 升級一部分強制執行的有限權限集執行。但是,以 root 身分執行 Pod 的租戶可能會因為安全性上下文不匹配而無法啟動。您可以為這些租戶設定一個明確的安全性上下文,允許 Pod 以 root 身分執行

    securityContext:
      runAsUser: 0
      runAsGroup: 0
      runAsNonRoot: false
      fsGroup: 0
    

    您可以使用以下命令編輯租戶並套用變更

    kubectl edit tenants <TENANT-NAME> -n <TENANT-NAMESPACE>
    # Modify the securityContext as needed
    

    有關 Kubernetes 安全性上下文的更多資訊,請參閱Pod 安全性標準

  3. 升級至 Operator 4.2.3

    下載 MinIO Kubernetes 外掛程式 4.2.3 並使用它來升級 Operator。在瀏覽器中開啟https://github.com/minio/operator/releases/tag/v4.2.3 並下載與您的本機主機作業系統相對應的二進位檔。

    例如,執行 Intel 或 AMD 處理器的 Linux 主機可以執行以下命令

    wget https://github.com/minio/operator/releases/download/v4.2.3/kubectl-minio_4.2.3_linux_amd64 -o kubectl-minio_4.2.3
    chmod +x kubectl-minio_4.2.3
    ./kubectl-minio_4.2.3 init
    
  4. 驗證所有租戶和 Operator Pod

    檢查 Operator 和 MinIO 租戶命名空間,以確保所有 Pod 和服務都已成功啟動。

    例如

    kubectl get all -n minio-operator
    kubectl get pods -l "v1.min.io/tenant" --all-namespaces
    
  5. 升級至 6.0.4

    按照升級 MinIO Operator 5.0.15 至 6.0.4程序升級至最新的穩定 Operator 版本。

將 MinIO Operator 從 3.0.0 至 3.0.29 升級至 4.2.2

先決條件

此步驟假設

  • 您現有的 MinIO Operator 部署正在執行 3.X.X

  • 您的 Kubernetes 叢集執行 1.19.0 或更新版本

  • 您的本機主機已安裝 kubectl 並已設定為可以存取 Kubernetes 叢集

程序

此程序涵蓋將 MinIO Operator 從 3.0.0 至 3.2.9 任何版本升級至 4.2.2 所需的步驟。接著您可以執行將 MinIO Operator 從 4.0.0 至 4.2.2 升級至 4.2.3,然後執行升級 MinIO Operator 5.0.15 至 6.0.4

從 3.X.X 系列安裝沒有直接升級至 6.0.4 的路徑。

  1. (可選)將每個 MinIO 租戶更新至最新的穩定 MinIO 版本。

    定期升級 MinIO 可確保您的租戶擁有最新的功能和效能改進。

    在將升級套用於您的生產租戶之前,請先在較低的環境(例如開發或 QA 租戶)中測試升級。

    如需升級 MinIO 租戶的步驟,請參閱升級 MinIO 租戶

  2. 驗證租戶 tenant.spec.zones 的值

    使用以下命令驗證每個託管 MinIO 租戶的規格

    kubectl get tenants <TENANT-NAME> -n <TENANT-NAMESPACE> -o yaml
    
    • 確保每個 tenant.spec.zones 元素都有一個 name 欄位設定為該區域的名稱。每個區域對於該租戶都必須有一個唯一的名稱,例如第一個和第二個區域分別為 zone-0zone-1

    • 確保每個 tenant.spec.zones 都有一個明確的 securityContext,描述 Pod 在叢集中執行的權限集。

    以下範例租戶 YAML 片段設定指定的欄位

    image: "minio/minio:$(LATEST-VERSION)"
    ...
    zones:
    - servers: 4
      name: "zone-0"
      volumesPerServer: 4
      volumeClaimTemplate:
         metadata:
         name: data
         spec:
         accessModes:
            - ReadWriteOnce
         resources:
            requests:
               storage: 1Ti
      securityContext:
         runAsUser: 0
         runAsGroup: 0
         runAsNonRoot: false
         fsGroup: 0
    - servers: 4
      name: "zone-1"
      volumesPerServer: 4
      volumeClaimTemplate:
         metadata:
         name: data
         spec:
         accessModes:
            - ReadWriteOnce
         resources:
            requests:
               storage: 1Ti
      securityContext:
         runAsUser: 0
         runAsGroup: 0
         runAsNonRoot: false
         fsGroup: 0
    

    您可以使用以下命令編輯租戶並套用變更

    kubectl edit tenants <TENANT-NAME> -n <TENANT-NAMESPACE>
    
  3. 升級至 Operator 4.2.2

    下載 MinIO Kubernetes 外掛程式 4.2.2 並使用它來升級 Operator。在瀏覽器中開啟https://github.com/minio/operator/releases/tag/v4.2.2 並下載與您的本機主機作業系統相對應的二進位檔。例如,執行 Intel 或 AMD 處理器的 Linux 主機可以執行以下命令

    wget https://github.com/minio/operator/releases/download/v4.2.3/kubectl-minio_4.2.2_linux_amd64 -o kubectl-minio_4.2.2
    chmod +x kubectl-minio_4.2.2
    
    ./kubectl-minio_4.2.2 init
    
  4. 驗證所有租戶和 Operator Pod

    檢查 Operator 和 MinIO 租戶命名空間,以確保所有 Pod 和服務都已成功啟動。

    例如

    kubectl get all -n minio-operator
    
    kubectl get pods -l "v1.min.io/tenant" --all-namespaces
    
  5. 升級至 4.2.3

    按照將 MinIO Operator 從 4.0.0 至 4.2.2 升級至 4.2.3程序升級至 Operator 4.2.3。然後您可以升級至 6.0.4。