ストレージ・オペレータ・コンポーネントは、ストレージ・コンポーネントのライフサイクルを管理するために使用される。 storage-operatorコンポーネントのConfigMapを変更して、ストレージコンポーネントをデプロイおよび更新できます。 これにより、コンテナの開発とメンテナンスの複雑さが軽減されます。 このトピックでは、Container Service for Kubernetes (ACK) クラスターにストレージコンポーネントを設定し、ストレージオペレーターをデプロイする方法について説明します。
概要
storage-operatorは展開として実行され、イメージから継承された既定の構成とConfigMapによって提供されるカスタム構成に基づいてストレージコンポーネントを展開および更新します。
ストレージ・オペレータ・コンポーネントは、ACKクラスタでのみ使用できます。
デフォルト設定: storage-operatorは、ストレージコンポーネントのデフォルト設定を提供します。 デフォルトの設定は、storage-operatorのバージョンによって異なります。
カスタム設定: ConfigMapsを使用して、バージョン情報やコンポーネントをインストールするかどうかなど、ストレージコンポーネントのカスタム設定を定義できます。
storage-operatorは、カスタム構成を使用することが好ましい。 デフォルト設定は、カスタム設定が指定されていない場合にのみ使用されます。
storage-operatorの各イメージには、デフォルトの構成ファイルが含まれます。
storage-operatorがDeploymentとして実行される場合、Deploymentは、Deploymentにマウントされ、ストレージコンポーネントの構成を含むConfigMapから構成を読み取ります。
storage-operatorは、デフォルト設定とカスタム設定を組み合わせて、ストレージコンポーネントをデプロイおよび更新するかどうかを決定します。
ステップ1: コンポーネントの設定
方法1: イメージによって提供されるデフォルト設定を使用する
ACKは、storage-snapshot-manager、storage-analyzer、storage-auto-expander、storage-monitorのストレージコンポーネントをサポートしています。
storage-operatorは、ストレージコンポーネントのデフォルト設定を提供します。 デフォルトの設定は、storage-operatorのバージョンによって異なります。 この例では、v1.18.8.0が使用されます。
{
"storage-snapshot-manager": {
"install": "true",
"imageTag": "v1.18.8.0-81508da-aliyun",
"imageRep": "acs/storage-snapshot-manager",
"template": "/acs/templates/storage-snapshot-manager/install.yaml"
},
"storage-analzyer": {
"install": "false",
"imageTag": "v1.18.8.0-06c5560-aliyun",
"imageRep": "acs/storage-analyzer",
"template": "/acs/templates/storage-analyzer/install.yaml"
},
"storage-auto-expander": {
"install": "false",
"imageTag": "v1.18.8.0-4852fd4-aliyun",
"imageRep": "acs/storage-auto-expander",
"crdTmpl": "/acs/templates/storage-auto-expander/crd.yaml",
"template": "/acs/templates/storage-auto-expander/install.yaml"
},
"storage-monitor": {
"install": "true",
"imageTag": "v1.18.8.0-c4744b6-aliyun",
"imageRep": "acs/storage-monitor",
"template": "/acs/templates/storage-monitor/install.yaml",
"svcTmpl": "/acs/templates/storage-monitor/service.yaml"
}
}
次の表に、デフォルト設定のパラメーターを示します。
パラメーター | 説明 |
インストール | コンポーネントをデプロイするかどうかを指定します。 デフォルト値: |
imageTag | コンポーネントがデプロイされている場合のデフォルトのイメージバージョン。 |
imageRep | コンポーネントがデプロイされている場合のデフォルトのイメージ名。 |
crdTmpl | デプロイするカスタムリソース定義 (CRD) のテンプレートパス。 このパラメーターが空の場合、CRDはデプロイされません。 |
svcTmpl | デプロイするサービスのテンプレートパス。 |
テンプレート | デプロイするコンポーネントのテンプレートパス。 |
ConfigMapを使用してパラメーターを変更できます。
方法2: ConfigMapを使用して設定をカスタマイズする
この例では、次のConfigMapテンプレートが提供されています。
kind: ConfigMap
apiVersion: v1
metadata:
name: storage-operator
namespace: kube-system
data:
storage-snapshot-manager: |
{
"install": "true",
"imageTag": "v1.16.aaaa",
"imageRep": "acs/storage-snapshot-manager",
"template": "/acs/templates/storage-snapshot-manager/install.yaml",
"SNAPSHOT_INTERVAL": "30"
}
storage-analyzer: '{"install": "false"}'
カスタム設定を使用する場合は、次の項目に注意してください。
カスタム設定で指定されたパラメーター値は、デフォルト設定のパラメーター値を上書きします。
各コンポーネントの構成は、2つの部分で構成されます。
前の手順でパラメーター説明テーブルで定義されている配置構成。 パラメーターは、コンポーネントをインストールするかどうか、およびデプロイされるコンポーネントのバージョンを指定します。 storage-operatorは、これらの設定に基づいてコンポーネントをデプロイおよび更新します。
その他の設定は環境変数によって設定されます。 上記の例では、
SNAPSHOT_INTERVAL
がstorage-snapshot-managerコンポーネントの環境変数として設定されています。
デプロイ設定で使用されるパラメーターは予約済みパラメーターであり、環境変数として使用することはできません。
コンポーネントの機能に基づいて特定のパラメータをカスタマイズできます。
ステップ2: storage-operatorコンポーネントのデプロイ
Add-onsページからストレージをインストールする-operator: 詳細については、「システムコンポーネントのアップグレード」をご参照ください。
次のコマンドを実行して、storage-operatorが実行中かどうかを確認します。
kubectl get pods -n kube-system -lapp=storage-operator
期待される出力:
NAME READY STATUS RESTARTS AGE storage-operator-57bdfd7f56-kl86k 1/1 Running 0 12m