永続ストレージのカスタマイズ
次のコンポーネントで、永続ストレージを使用できます:
- 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