メインコンテンツまでスキップ
バージョン: 3.11

Scalar Manager のカスタム値ファイルを設定する

注記

このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。

このドキュメントでは、Scalar Manager Helm Chart のカスタム値ファイルを設定する方法について説明します。使用可能なパラメータの詳細については、Scalar Manager チャートリポジトリの README を参照してください。

必要な設定

このセクションでは、Scalar Manager の値ファイルに含める必要があるサービス、イメージ、および Scalar Manager の設定について説明します。

サービス設定

Kubernetes の Service リソースのタイプを定義するには、web.service.type を設定する必要があります。クラウドサービスプロバイダーがサービスを公開するために提供するロードバランサーを使用するには、web.service.typeLoadBalancer に設定します。

web:
service:
type: LoadBalancer
# other web configurations

Scalar Manager を公開する際のセキュリティ上の考慮事項

web.service.typeLoadBalancer に設定すると、デフォルトでは Scalar Manager が HTTP 経由で外部に公開されます。信頼できないネットワーク上に公開する場合は、暗号化されていないトラフィックによるセキュリティリスクが発生します。外部アクセスが不要な場合は、プライベートネットワークを使用するか、Kubernetes クラスターへのネットワークアクセスを適切に設定することをお勧めします。

Scalar Manager は、認証および認可メカニズムをサポートしています。これらのメカニズムを設定することで、Scalar 製品を一時停止するジョブのスケジュール設定などの機能に対して認可されたアクションを確実に実行できます。詳細については、Scalar Manager の認証設定 を参照してください。

コンテナイメージ設定

api.image.repositoryweb.image.repository を設定する必要があります。これらの設定は Scalar Manager コンテナイメージを指定し、コンテナリポジトリからそれらをプルできるようにします。

api:
image:
repository: <SCALAR_MANAGER_API_IMAGE>
web:
image:
repository: <SCALAR_MANAGER_WEB_IMAGE>

オプション設定

このセクションでは、Scalar Manager の値ファイルをカスタマイズするためのオプションの設定について説明します。

Scalar Manager 設定 (環境に応じてオプション)

api.applicationProperties の設定を上書きして、デフォルトの Scalar Manager 設定を変更できます。

api:
applicationProperties: |
prometheus.kubernetes-service-label-name="app"
prometheus.kubernetes-service-label-value="kube-prometheus-stack-prometheus"
prometheus.kubernetes-service-port-name="http-web"
# other application properties

Scalar Manager には、クラスター内の Scalar 製品のデプロイメントと Prometheus サービスを検出するためのデフォルト設定が含まれています。ほとんどのシナリオでは、特にガイドに従って kube-prometheus-stackloki-stack をデプロイする場合は、これらのデフォルト設定で十分であり、変更する必要はありません。

api.applicationProperties で設定可能なプロパティ

Scalar Manager の設定は、Java アプリケーションプロパティの形式で、key=valueのペアです。これらのアプリケーションプロパティは、Scalar Manager Helm Chart の api.applicationProperties カスタム値を使用して設定できます。

名前説明デフォルト値
prometheus.kubernetes-service-label-nameKubernetes で Prometheus サービスを検出するために使用されるラベル名app
prometheus.kubernetes-service-label-valueprometheus.kubernetes-service-label-name に対応するラベル値kube-prometheus-stack-prometheus
prometheus.kubernetes-service-port-nameKubernetes で Prometheus サービスポートを検出するために使用されるポート名http-web
springdoc.swagger-ui.enabledSwagger UI を有効にするかどうかfalse
springdoc.swagger-ui.pathSwagger UI のパス/swagger-ui.html
app.cors.allowed-originsCORS の許可されたオリジン*
app.cors.allowed-methodsCORS で許可されるメソッド*
app.cors.allowed-headersCORS で許可されるヘッダー*
authentication.providers.static-jwt.secretJWT トークンの署名に使用される秘密鍵。最小 32 文字example-jwt-secret-with-minimum-32-characters
authentication.providers.static-jwt.issuer-uriJWT トークンの発行者 URIhttps://scalar-manager.example.com
authentication.providers.static-jwt.access-token-expiration-timeアクセストークンの有効期限1h
authentication.providers.static-jwt.refresh-token-expiration-timeリフレッシュトークンの有効期限3d
app.initial-admin-user.enabled初期管理者ユーザーを有効にするかどうかtrue
app.initial-admin-user.email初期管理者ユーザーのメールアドレスadmin@example.com
app.initial-admin-user.name初期管理者ユーザーの名前Administrator
app.initial-admin-user.password初期管理者ユーザーのパスワードPassword@123!
spring.jpa.hibernate.ddl-autoHibernate の DDL モードupdate
spring.jpa.show-sqlSQL クエリを表示するかどうかfalse
spring.jpa.properties.hibernate.format_sqlSQL クエリをフォーマットするかどうかfalse
spring.datasource.urlデータベースの URLjdbc:postgresql://scalar-manager-postgres-postgresql:5432/scalar-manager
spring.datasource.usernameデータベースのユーザー名scalar-manager
spring.datasource.passwordデータベースのパスワードscalar-manager
spring.datasource.driver-class-nameデータベースのドライバークラス名org.postgresql.Driver
注記

api.applicationProperties では、JPA、Hibernate、Spring Data に関して設定できる項目が他にもあります。これらの設定に精通している場合は、データベース接続と Scalar Manager の動作をカスタマイズするように設定できます。

Scalar Manager の認証設定

デフォルトでは、Scalar Manager にアクセスするには、ユーザー名とパスワードを使用して認証する必要があります。

認証を設定するための前提条件は次のとおりです。

  • 独自の PostgreSQL データベース、またはクラウドサービスプロバイダーがホストする PostgreSQL データベースが必要です。たとえば、PostgreSQL 用の Bitnami パッケージ を使用して、Kubernetes クラスターに PostgreSQL データベースをデプロイできます。
  • authentication.providers.static-jwt.secret 設定を設定する必要があります。この設定は JWT トークンの署名に使用され、シークレットの文字数は最小 32 文字です。

以下は、上記の前提条件を適用するために api.applicationProperties で設定する必要がある追加の設定の例です。環境に合わせて設定を必ず変更してください。

# JWT configuration
# Secret key used for signing JWT tokens, minimum 32 characters
authentication.providers.static-jwt.secret=${AUTHENTICATION_PROVIDERS_STATIC_JWT_SECRET:example-jwt-secret-with-minimum-32-characters}
authentication.providers.static-jwt.issuer-uri=${AUTHENTICATION_PROVIDERS_STATIC_JWT_ISSUER_URI:https://scalar-manager.example.com}
authentication.providers.static-jwt.access-token-expiration-time=${AUTHENTICATION_PROVIDERS_STATIC_JWT_ACCESS_TOKEN_EXPIRATION_TIME:1h}
authentication.providers.static-jwt.refresh-token-expiration-time=${AUTHENTICATION_PROVIDERS_STATIC_JWT_REFRESH_TOKEN_EXPIRATION_TIME:3d}

# Initial admin configuration
app.initial-admin-user.enabled=${APP_INITIAL_ADMIN_USER_ENABLED:true}
app.initial-admin-user.email=${APP_INITIAL_ADMIN_USER_EMAIL:admin@example.com}
app.initial-admin-user.name=${APP_INITIAL_ADMIN_USER_NAME:Administrator}
app.initial-admin-user.password=${APP_INITIAL_ADMIN_USER_PASSWORD:Password@123!}

# JPA configuration
spring.jpa.hibernate.ddl-auto=${SPRING_JPA_HIBERNATE_DDL_AUTO:update}
spring.jpa.show-sql=${SPRING_JPA_SHOW_SQL:false}
spring.jpa.properties.hibernate.format_sql=${SPRING_JPA_PROPERTIES_HIBERNATE_FORMAT_SQL:false}

# Database configuration
spring.datasource.url=jdbc:postgresql://${DATABASE_HOST:scalar-manager-postgres-postgresql}:${DATABASE_PORT:5432}/${DATABASE_NAME:scalar-manager}
spring.datasource.username=${DATABASE_USERNAME:scalar-manager}
spring.datasource.password=${DATABASE_PASSWORD:scalar-manager}
spring.datasource.driver-class-name=org.postgresql.Driver

サービスディスカバリー

Scalar Manager はラベルを使用して Kubernetes 内の Prometheus サービスを検出し、ポート名を使用してサービスに接続します。prometheus.kubernetes-service-label-nameprometheus.kubernetes-service-label-value、および prometheus.kubernetes-service-port-name を設定することで、ラベルとポート名を変更できます。

一般的に、これらの設定を変更する必要はありません。ただし、Prometheus サービスの Helm Chart をインストールする際にラベルまたはポート名をカスタマイズした場合は、カスタマイズに合わせてこれらの設定を調整する必要があります。

web.env で設定可能な環境変数

NameDescriptionDefault Value
GRAFANA_SERVER_URLKubernetes クラスター内の Grafana サービスの URLhttp://scalar-monitoring-grafana.monitoring.svc.cluster.local:3000

現在、GRAFANA_SERVER_URL 変数を web.env で設定して、Scalar Manager Web UI から Grafana UI へのプロキシをカスタマイズできます。デフォルトでは、変数は monitoring 名前空間にインストールされた Grafana サービス scalar-monitoring-grafana に設定されています。Grafana を別の名前空間にインストールした場合、または Grafana サービスの名前を変更した場合は、それに応じて GRAFANA_SERVER_URL 変数を更新する必要があります。