全部產品
Search
文件中心

Container Service for Kubernetes:CSI ossfs版本升級與掛載流程最佳化

更新時間:Aug 24, 2024

通過CSI掛載OSS儲存卷時,CSI組件會使用ossfs將OSS Bucket掛載到節點檔案系統。v1.30.4-*版本的CSI組件(包括csi-plugin組件和csi-provisioner組件)升級了ossfs的預設版本,並最佳化了掛載流程。

變更內容及解決方案

ossfs版本升級

在v1.30.4-*版本中,csi-plugin組件和csi-provisioner組件預設使用的ossfs版本將升級至v1.91.3。關於ossfs版本的介紹,請參見ossfs版本說明;關於1.91及以上版本的介紹, 請參見ossfs 1.91及以上版本新功能介紹及效能壓測

如果您仍然需要使用v1.88版本的ossfs,請參見如下步驟操作。

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇營運管理 > 組件管理

  3. 單擊儲存頁簽,分別定位csi-plugin組件和csi-provisioner組件,單擊組件卡片的配置,配置兩個組件的FeatureGate為UpdatedOssfsVersion=false

ossfs Pod命名空間切換為ack-csi-fuse

舊版本CSI掛載OSS Bucket時會自動建立對應的ossfs Pod,位於kube-system命名空間下。自v1.30.4-*版本起,ossfs Pod所在的命名空間將切換至ack-csi-fuse。

若您在v1.30.4-*版本前通過RRSA鑒權方式掛載了OSS儲存卷,由於Pod的命名空間變更,升級版本至v1.30.4-*版本前,需要追加RAM角色的授權主體,否則新掛載OSS儲存卷的Pod將啟動失敗。

請參見如下步驟修改信任策略。

  1. 使用阿里雲帳號登入RAM控制台

  2. 在左側導覽列,選擇身份管理 > 角色

  3. 角色頁面,搜尋對應RAM角色,單擊角色名稱,然後單擊信任策略頁簽,根據頁面提示編輯信任策略。

    您可以參考以下樣本修改信任策略,在oidc:sub處追加ack-csi-fuse命名空間下的ServiceAccount。

    假設原信任策略為:

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Condition": {
            "StringEquals": {
              "oidc:aud": [
                "sts.aliyuncs.com"
              ],
              "oidc:iss": "https://oidc-ack-cn-beijing.oss-cn-beijing.aliyuncs.com/c747b09ddd6664d33ad3939**********",
              "oidc:sub": "system:serviceaccount:kube-system:csi-fuse-ossfs"
            }
          },
          "Effect": "Allow",
          "Principal": {
            "Federated": [
              "acs:ram::130155**********:oidc-provider/ack-rrsa-c747b09ddd6664d33ad3939**********"
            ]
          }
        }
      ],
      "Version": "1"
    }

    修改後的信任策略為:

    {
      "Statement": [
        {
          "Action": "sts:AssumeRole",
          "Condition": {
            "StringEquals": {
              "oidc:aud": [
                "sts.aliyuncs.com"
              ],
              "oidc:iss": "https://oidc-ack-cn-beijing.oss-cn-beijing.aliyuncs.com/c747b09ddd6664d33ad3939**********",
              "oidc:sub": "system:serviceaccount:kube-system:csi-fuse-ossfs"
            }
          },
          "Effect": "Allow",
          "Principal": {
            "Federated": [
              "acs:ram::130155**********:oidc-provider/ack-rrsa-c747b09ddd6664d33ad3939**********"
            ]
          }
        },
        {
          "Action": "sts:AssumeRole",
          "Condition": {
            "StringEquals": {
              "oidc:aud": [
                "sts.aliyuncs.com"
              ],
              "oidc:iss": "https://oidc-ack-cn-beijing.oss-cn-beijing.aliyuncs.com/c747b09ddd6664d33ad3939**********",
              "oidc:sub": "system:serviceaccount:ack-csi-fuse:csi-fuse-ossfs" 
            }
          },
          "Effect": "Allow",
          "Principal": {
            "Federated": [
              "acs:ram::130155**********:oidc-provider/ack-rrsa-c747b09ddd6664d33ad3939**********"
            ]
          }
        }
      ],
      "Version": "1"
    }

不再支援自訂ossfs鏡像

v1.30.4-*版本的CSI不再支援通過csi-plugin ConfigMap自訂ossfs鏡像。

注意事項

  • 通過Container Service管理主控台的組件管理頁面升級csi-plugin組件版本到v1.30.4-*及以上版本後,叢集會自動使用新版掛載流程。csi-plugin組件版本升級後,掛載了OSS儲存卷的存量Pod仍會正常運行,不受影響。

  • 升級csi-plugin組件到v1.30.4-*及以上版本前,請安裝最新版本的csi-provisioner組件,或升級csi-provisioner(託管版或非託管版)組件至v1.30.4-*及以上版本。

相關文檔

關於CSI組件的變更記錄及說明,請參見csi-plugincsi-provisioner