永続ストレージのカスタマイズ
次のコンポーネントで、永続ストレージを使用できます:
- Elasticsearch
- Prometheus
- Grafana
- Keycloak/MySQL
デフォルトでは、各Verrazzanoインストール・プロファイルのストレージ特性は異なります。devプロファイルではエフェメラル・ストレージのみが使用されますが、他のすべてのプロファイルでは、リストされている各コンポーネントで永続ストレージが使用されます。詳細は、プロファイル構成を参照してください。
ノート
本番環境では、エフェメラル・ストレージはお薦めしません。Kubernetesポッドはいつでも再起動できるため、非永続ストレージが使用されている場合、データが失われ、システムが不安定になります。永続ストレージは、評価または開発以外のあらゆるユースケースで推奨されます。各プロファイルには独自のデフォルトの永続性設定がありますが、いずれの場合も、プロファイルのデフォルトをオーバーライドして永続性設定をカスタマイズするオプションがあります。
永続ストレージのカスタマイズ
次のコンポーネントでは、永続ストレージを使用できます:
- Elasticsearch
- Kibana
- Prometheus
- Grafana
- Keycloak
これらのコンポーネントの永続性設定は、次のようにVerrazzanoSpecを使用してカスタマイズできます:
defaultVolumeSourceフィールドを使用して、すべてのコンポーネント(Keycloak、Grafana、Prometheus、ElasticsearchおよびKibana)の永続性設定をオーバーライドします。- そのコンポーネントの構成で
volumeSourceフィールドを使用して、Keycloakの永続性設定をオーバーライドします。
グローバルのdefaultVolumeSourceおよびコンポーネント・レベルのvolumeSourceフィールドは、次のいずれかの値に設定できます:
| 値 | ストレージ |
|---|---|
emptyDir |
エフェメラル・ストレージ。本番のシナリオには使用しないでください。 |
persistentVolumeClaim |
claimSourceフィールドが名前付きvolumeClaimSpecTemplateを参照するPersistentVolumeClaimVolumeSource。 |
persistentVolumeClaimを使用してコンポーネントのストレージ設定をオーバーライドする場合は、次のことを行う必要があります:
- 必要な永続性設定を識別するvolumeClaimSpecTemplateを作成します。
claimNameフィールドが以前に作成したテンプレートを参照するコンポーネントのpersistentVolumeClaimを構成します。
これにより、Verrazzano構成内の複数のコンポーネント間で共有できる名前付き永続性設定を作成できます。volumeClaimSpecTemplatesリストに永続性テンプレートが存在しても、ただちに永続ボリュームが作成されるわけではなく、defaultVolumeSourceまたは特定のコンポーネントのvolumeSourceによって参照されるまで、コンポーネントのストレージ設定には影響しません。
サンプル
次の永続ストレージのカスタマイズの例を確認してください:
defaultVolumeSourceを使用した永続性のグローバルなカスタマイズvolumeSourceを使用したKeycloakのPersistentVolumeClaim設定のカスタマイズ- グローバルおよびローカルの永続性設定の同時使用
defaultVolumeSourceを使用した永続性のグローバルなカスタマイズ
defaultVolumeSourceが構成されている場合、その設定はストレージを必要とするすべてのコンポーネントに使用されます。
たとえば、次のVerrazzano構成ではprodプロファイルが使用されますが、すべてのコンポーネントの永続ストレージは無効です:
apiVersion: install.verrazzano.io/v1alpha1
kind: Verrazzano
metadata:
name: no-storage-prod
spec:
profile: prod
defaultVolumeSource:
emptyDir: {}
次の例では、persistentVolumeClaimを使用して、prodプロファイルの永続性設定をグローバルにオーバーライドし、すべてのコンポーネントにデフォルトの50Giではなく100Giボリュームを使用します:
apiVersion: install.verrazzano.io/v1alpha1
kind: Verrazzano
metadata:
name: prod-global-override
spec:
profile: prod
defaultVolumeSource:
persistentVolumeClaim:
claimName: globalOverride
volumeClaimSpecTemplates:
- metadata:
name: globalOverride
spec:
resources:
requests:
storage: 100Gi
次の例では、managed-clusterプロファイルを使用しますが、永続設定をオーバーライドしてエフェメラル・ストレージを使用します:
apiVersion: install.verrazzano.io/v1alpha1
kind: Verrazzano
metadata:
name: mgdcluster-empty-storage-example
spec:
profile: managed-cluster
defaultVolumeSource:
emptyDir: {} # Use emphemeral storage for all Components unless overridden
volumeSourceを使用したKeycloakのPersistentVolumeClaim設定のカスタマイズ
次のVerrazzano構成例は、devプロファイル構成でKeycloak内のMySQLコンポーネントに対して100Gi PersistentVolumeClaimを有効にします。これにより、そのプロファイルのKeycloakに対するデフォルトのエフェメラル・ストレージはオーバーライドされますが、他のコンポーネントのデフォルトのストレージ設定は保持されます:
apiVersion: install.verrazzano.io/v1alpha1
kind: Verrazzano
metadata:
name: dev-mysql-storage-example
spec:
profile: dev
components:
keycloak:
mysql:
volumeSource:
persistentVolumeClaim:
claimName: mysql # Use the "mysql" PVC template for the MySQL volume configuration
volumeClaimSpecTemplates:
- metadata:
name: mysql
spec:
resources:
requests:
storage: 100Gi
グローバルおよびローカルの永続性設定の同時使用
次の例では、devインストール・プロファイルを使用しますが、次のようにプロファイルの永続性設定をオーバーライドします:
- デフォルトで、すべてのコンポーネントに
200Giボリュームを使用します。 - Keycloakに関連付けられているMySQLインスタンスに対して
100Giボリュームを使用します。
apiVersion: install.verrazzano.io/v1alpha1
kind: Verrazzano
metadata:
name: dev-storage-example
spec:
profile: dev
defaultVolumeSource:
persistentVolumeClaim:
claimName: vmi # set storage globally for the metrics stack
components:
keycloak:
mysql:
volumeSource:
persistentVolumeClaim:
claimName: mysql # set storage separately for keycloak's MySql instance
volumeClaimSpecTemplates:
- metadata:
name: mysql
spec:
resources:
requests:
storage: 100Gi
- metadata:
name: vmi
spec:
resources:
requests:
storage: 200Gi