ScalarDB Analytics server のカスタム値ファイルを構成する
このドキュメントでは、ScalarDB Analytics server チャートのカスタム値ファイルを作成する方法について説明します。パラメータの詳細については、ScalarDB Analytics server チャートの README を参照してください。
必要な構成
このセクションでは、必須の設定項目であるイメージ、データベース、およびサービスの構成について説明します。
コンテナイメージ構成
scalarDbAnalyticsServer.image.repository を設定する必要があります。コンテナリポジトリからイメージをプルできるように、必ず ScalarDB Analytics server コンテナイメージを指定してください。
scalarDbAnalyticsServer:
image:
repository: <SCALARDB_ANALYTICS_SERVER_CONTAINER_IMAGE>
データベース構成
scalarDbAnalyticsServer.properties を設定する必要があります。このパラメータの値の設定の詳細については、ScalarDB Analytics サーバー設定参照してください。
scalarDbAnalyticsServer:
properties: |
scalar.db.analytics.server.db.url=jdbc:postgresql://localhost:5432/scalardb_analytics
scalar.db.analytics.server.db.username=analytics_user
scalar.db.analytics.server.db.password=your_secure_password
サービス構成
Kubernetes のサービスリソースタイプを指定するには、scalarDbAnalyticsServer.service.type を設定する必要があります。
ScalarDB Analytics server が Kubernetes クラスターの内部からのみクライアントリクエストを受け入れる場合 (たとえば、クライアントアプリケーションを Scalar 製品と同じ Kubernetes クラスターにデプロイする場合)、scalarDbAnalyticsServer.service.type を ClusterIP に設定できます。この構成では、クラウドサービスプロバイダーが提供するロードバランサーは作成されません。
scalarDbAnalyticsServer:
service:
type: ClusterIP
クラウドサービスプロバイダーが提供するロードバランサーを使用して、Kubernetes クラスターの外部からのクライアントリクエストを受け入れる場合は、scalarDbAnalyticsServer.service.type を LoadBalancer に設定する必要があります。
scalarDbAnalyticsServer:
service:
type: LoadBalancer
アノテーションを介してロードバランサを設定したい場合は、アノテーションを scalarDbAnalyticsServer.service.annotations に設定することもできます。
scalarDbAnalyticsServer:
service:
type: LoadBalancer
annotations:
service.beta.kubernetes.io/aws-load-balancer-internal: "true"
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
オプションの構成
シークレット構成 (運用環境で推奨)
環境変数を使用してプロパティ (資格情報など) を設定するには、scalarDbAnalyticsServer.secretName を使用して、資格情報を含む Secret リソースを指定します。
たとえば、環境変数を使用してバックエンドデータベースの資格情報 (scalar.db.analytics.server.db.username and scalar.db.analytics.server.db.password) を設定できるため、Pod の安全性が高まります。
scalarDbAnalyticsServer:
secretName: "scalardb-analytics-server-credentials-secret"
ScalarDB Analytics server は、特定の環境変数から設定を自動的に読み込みます。環境変数の命名規則は次のとおりです。
- プロパティ名のすべての文字を大文字にします。
- ピリオド (
.) を アンダースコア (_) に置き換えます。
たとえば、scalar.db.analytics.server.db.username と scalar.db.analytics.server.db.password を環境変数で設定する場合は、SCALAR_DB_ANALYTICS_SERVER_DB_USERNAME と SCALAR_DB_ANALYTICS_SERVER_DB_PASSWORD という環境変数を設定する必要があります。
この場合、scalarDbAnalyticsServer.properties で scalar.db.analytics.server.db.username と scalar.db.analytics.server.db.password を設定する必要はありません。環境変数のみを設定すれば十分です。
たとえば、次のようにして、SCALAR_DB_ANALYTICS_SERVER_DB_USERNAME と SCALAR_DB_ANALYTICS_SERVER_DB_PASSWORD を含むシークレットリソースを作成できます。
kubectl create secret generic scalardb-analytics-server-credentials-secret \
--from-literal=SCALAR_DB_ANALYTICS_SERVER_DB_USERNAME=analytics_user \
--from-literal=SCALAR_DB_ANALYTICS_SERVER_DB_PASSWORD=your_secure_password
SecurityContext 設定 (デフォルト値を推奨)
ScalarDB Analytics server Pod の SecurityContext と PodSecurityContext を設定するには、scalarDbAnalyticsServer.securityContext と scalarDbAnalyticsServer.podSecurityContext を使用できます。
Kubernetes の SecurityContext および PodSecurityContext と同じ構文を使用して、SecurityContext および PodSecurityContext を構成できます。Kubernetes の SecurityContext および PodSecurityContext 構成の詳細については、Configure a Security Context for a Pod or Container を参照してください。
scalarDbAnalyticsServer:
podSecurityContext:
seccompProfile:
type: RuntimeDefault
securityContext:
capabilities:
drop:
- ALL
runAsNonRoot: true
allowPrivilegeEscalation: false