すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:クラウドディスクのタイプを変更する

最終更新日:Nov 10, 2024

Container Service for Kubernetes (ACK) では、ストレージ要件と予算に基づいて、Kubernetesクラスターに複数のタイプのクラウドディスクを作成できます。 ACKを使用すると、変化するビジネス要件を満たすようにクラウドディスクのタイプを変更することもできます。 アプリケーション用の標準SSDを作成したとします。 アプリケーションでより高いIOPSが必要な場合は、ディスクのタイプを標準SSDからエンタープライズSSD (ESSD) にアップグレードできます。 このトピックでは、クラウドディスクのタイプを変更する方法について説明します。

目次

前提条件

  • Kubernetes 1.20以降を実行するACKクラスターが作成されます。 Container Storage Interface (CSI) プラグインがボリュームプラグインとして使用されます。 詳細については、「ACK管理クラスターの作成」をご参照ください。

  • storage-operatorコンポーネントのバージョンはv1.26.1-50a1499-aliyun以降です。 storage-operatorの更新方法の詳細については、「コンポーネントの管理」をご参照ください。

  • ACK専用クラスターを使用する場合は、ワーカーロールとマスターロールに次の権限を付与する必要があります。 詳細については、「カスタムポリシーの作成」をご参照ください。

    ワーカーロールとマスターロールにアタッチされた権限ポリシーのコンテンツの表示

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "ecs:CreateSnapshot",
                    "ecs:DescribeSnapshot",
                    "ecs:DeleteSnapshot",
                    "ecs:ModifyDiskSpec",
                    "ecs:DescribeTaskAttribute"
                ],
                "Resource": "*"
            }
        ]
    }
    説明

    ACK Proクラスターを使用する場合、上記のRAM権限を付与する必要はありません。

制限事項

  • ESSD AutoPLディスクまたはESSD PL-Xディスクのタイプは変更できません。

  • ディスクタイプの変更に関する制限の詳細については、「制限」をご参照ください。

考慮事項

ディスクタイプの変更に関する考慮事項の詳細については、「考慮事項」をご参照ください。

課金ルール

ディスクタイプを変更するための課金ルールの詳細については、「課金」をご参照ください。

ディスクタイプを変更する方法

  1. 次のコマンドを実行して、ConfigMapを変更します。

    kubectl patch configmap/storage-operator \
      -n kube-system \
      --type merge \
      -p '{"data":{"storage-controller":"{\"imageRep\":\"acs/storage-controller\",\"imageTag\":\"\",\"install\":\"true\",\"template\":\"/acs/templates/storage-controller/install.yaml\",\"type\":\"deployment\"}"}}'
  2. 次のコンテンツに基づいてContainerStorageOperator CustomResource (CR) を作成します。

    apiVersion: storage.alibabacloud.com/v1beta1
    kind: ContainerStorageOperator
    metadata:
      name: default
    spec:
      operationType: DISKUPGRADE
      operationParams:
        pvNames: "disk-1***,disk-2***,disk-3***"
        desiredDiskType: "cloud_essd.PL2"

    パラメーター

    説明

    operationType

    値をDISKUPGRADEに設定します。

    pvNames

    管理する永続ボリューム (PV) 。 複数のPVはコンマ (,) で区切ります。 例: "disk-1 ***,disk-2 ***,disk-3 ***" 。

    desiredDiskType

    新しいディスクタイプ。 有効な値:

    • cloud_efficiency

    • cloud_ssd

    • cloud_essd.PL0

    • cloud_essd.PL1

    • cloud_essd.PL2

    • cloud_essd.PL3

  1. sts-test.yamlという名前のファイルを作成し、次の内容をファイルに追加します。

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: sts-test
    spec:
      podManagementPolicy: Parallel
      selector:
        matchLabels:
          app: sts-test
      replicas: 1
      serviceName: sts-test
      template:
        metadata:
          labels:
            app: sts-test
        spec:
          containers:
          - name: mysql
            image: mysql:5.7
            env:
            - name: MYSQL_ROOT_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: mysql-pass
                  key: password
            imagePullPolicy: IfNotPresent
            volumeMounts:
            - name: disk
              mountPath: /data
      volumeClaimTemplates:
      - metadata:
          name: disk
        spec:
          accessModes: [ "ReadWriteMany" ]
          storageClassName: alicloud-disk-topology-alltype
          resources:
            requests:
              storage: 40Gi
    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: mysql-pass
    type: Opaque
    data:
      username: dGVz****            
      password: dGVzdDEt****    
  2. 次のコマンドを実行して、クラウドディスクを使用するアプリケーションをデプロイします。

    kubectl apply -f sts-test.yaml
  3. 次のコマンドを実行して、ポッドのステータスを照会します。

    kubectl get pods sts-test-0

    期待される出力:

    NAME          READY  STATUS    RESTARTS
    sts-test-0    1/1    Running   0
  4. ポッドが [実行中] 状態になるまで待ち、次のコマンドを実行してポッドにマウントされているPVの名前を照会します。

    kubectl get pvc disk-sts-test-0

    期待される出力:

    NAME              STATUS   VOLUME                                        CAPACITY   ACCESS MODES
    disk-sts-test-0   Bound    disk-1aaf007e-36ac-4985-acf0-fc3c85de0e08     500Gi      RWX

    出力は、disk-1aaf007e-36ac-4985-acf0-fc3c85de0e08 PVがポッドに取り付けられていることを示します。

  5. PV名をパラメーターとして、CRを作成および作成する必要があるCRに渡します。

    apiVersion: storage.alibabacloud.com/v1beta1
    kind: ContainerStorageOperator
    metadata:
      name: default
    spec:
      operationType: DISKUPGRADE
      operationParams:
        pvNames: "disk-1aaf007e-36ac-4985-acf0-fc3c85de0e08"
        desiredDiskType: "cloud_essd.PL2"
  6. CRがSUCCESS状態になるまで待つ。 これは、ディスクタイプが変更されたことを示します。

    CR

  7. 次のコマンドを実行して、PVのラベルを照会し、ディスクタイプが変更されたことを確認します。

    kubectl get pv disk-1aaf007e-36ac-4985-acf0-fc3c85de0e08 -oyaml

    期待される出力:

    labels:
      csi.alibabacloud.com/disktype:cloud_essd.PL2
    name: disk-1aaf007e-36ac-4985-acf0-fc3c85de0e08
    resourceVersion:"89703"
    uid: 5049a02d-dce3-47a0-9cc6-a4b9c6****

    出力は、ディスクタイプがcloud_essd.PL2に変更されたことを示します。