文件

升級舊版 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

先決條件

此程序需要以下條件

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

  • 您的 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)部署都已移除。然而,現有的部署仍會以獨立部署/ StatefulSet 的形式執行,且與 Tenant CR 沒有關聯。刪除 Tenant 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. (選用)若要繼續使用日誌搜尋 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 權杖 (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 權杖 (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 安裝文件。您可以使用適用於 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 叢集上的外部存取。您應該設定網路控制平面元件,例如負載平衡器或 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 外掛程式 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。