文件

升級舊版 MinIO Operators

MinIO 支援舊版 MinIO Operator 的以下升級路徑

目前版本

支援的升級目標

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 或更早版本將 Operator 升級至 6.0.4,您必須先升級至 4.5.8 版,然後再升級至 5.0.15。根據您目前的版本,您可能需要執行一或多個中間升級才能達到 v4.5.8。

升級至 5.0.15 後,請參閱升級 MinIO Operator以升級至最新版本。

將 MinIO Operator 4.5.8 及更新版本升級至 5.0.15

先決條件

此程序需要以下條件

  • 您有一個執行 4.5.8 或更新版本的現有 MinIO Operator 部署

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

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

此程序會將 MinIO Operator 從任何 4.5.8 或更新版本升級至 5.0.15

租戶自訂資源定義變更

以下變更適用於 Operator 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

Operator 的最新版本會從內含的 Operator 工具中移除記錄搜尋和 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 取代為您要升級的 operator 部署上租戶的名稱。

    • mynamespace 取代為您要升級的 operator 部署上租戶的命名空間。

    針對每個租戶重複執行。

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

  3. (選用) 若要繼續使用 Log Search API 和 Prometheus,請將以下變數新增至租戶的 yaml 規格檔案中 .spec.env 底下

    使用以下命令編輯租戶

    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

先決條件

此程序需要以下條件

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

  • 您的 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 安裝文件。您可以將 Krew 外掛程式用於 Linux、macOS 和 Windows 作業系統。

    您可以使用 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 叢集上的外部存取。相反地,請設定網路控制平面元件(例如負載平衡器或 Ingress)以授予外部存取權。

    為了進行測試或短期存取,請使用以下修補程式透過 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"
        }
    }'
    

    patch 命令應輸出 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

先決條件

此程序假設

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

  • 您的 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 Plugin 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 Plugin 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。