文件

升級舊版 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) 部署。然而,現有的部署會以獨立部署/狀態集的形式繼續執行,與租戶 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
    
    • 使用您正在升級的 operator 部署上的租戶名稱取代 myminio

    • 使用您正在升級的 operator 部署上租戶的命名空間取代 mynamespace

    針對每個租戶重複執行。

  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 叢集上進行外部存取。相反地,您必須設定網路控制平面元件(例如負載平衡器或 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"
        }
    }'
    

    套用路徑後,您可以在任何 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 叢集上進行外部存取。相反地,您必須設定網路控制平面元件(例如負載平衡器或 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"
        }
    }'
    

    套用路徑後,您可以在任何 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 Console 所需的 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 叢集的存取權

步驟

此程序涵蓋將正在運行 4.0.0 到 4.2.2 任何版本的 MinIO Operator 部署升級至 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 叢集的存取權

步驟

此程序涵蓋將正在運行 3.0.0 到 3.2.9 任何版本的 MinIO Operator 部署升級至 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。