Helmコマンドを使用してSystemLink Enterpriseをインストールします。

SystemLink Enterpriseをインストールする場合、通常、以下の3つの主要な場所で構成を行います。

  1. systemlink-values.yaml: アプリケーションの大部分を構成します。
  2. systemlink-admin-values.yaml: SystemLink Admin Helmチャートのグローバルリソースを定義します。SystemLink Helmチャートをインストールする前に、これらのリソースをHelmによってインストールする必要があります。
  3. systemlink-secrets.yaml: Helmのシークレットを定義します。NIでは、ファイルまたはファイル内のシークレット値を暗号化するためにsopsなどの技術を使用することを推奨します。このファイルを使用してシークレットをデプロイすることはオプションです。このファイルを使用してシークレットをデプロイしない場合は、systemlink-values.yamlglobal.deplySecretsfalseに設定します。

ネームスペースを作成する

クラスタを整理するためにネームスペースを作成します。

  • SystemLink Helmチャートのネームスペースを作成します。
    kubectl create namespace <namespace>
  • SystemLink Admin Helmチャートのネームスペースを作成します。
    kubectl create namespace <admin-namespace>

証明書を準備する

外部リソースとのTransport Layer Security (TLS) 通信および認証のための証明書を構成します。

メモ SystemLink Enterpriseエンドポイントは機能するためにTLSが必要です。NIは、SystemLink Enterpriseと外部データストレージおよびIDプロバイダ間のすべての通信にTLSを使用することを推奨します。信頼できるソースからのみ証明書を取得してください。

証明書を使用してPostgreSQLインスタンスとの通信を認証および暗号化する場合は、PostgreSQLを参照し、Helmでこれらの証明書をデプロイおよび参照してください。

SystemLink Enterpriseホスト名、MongoDB、またはS3にプライベート認証局によって署名された証明書を使用している場合は、「プライベート認証局」を参照し、Helmでこれらの証明書をデプロイおよび参照してください。

クラスタの前提条件をインストールする

前提として必要なリソースをクラスタにグローバルにインストールします。

以下の権限を持つユーザが、SystemLink Admin Helmチャートで以下の手順を実行する必要があります。

  • フルアクセス権を持つクラスタ管理者です。
  • Argo WorkflowsユーザはCustomResourceDefinitionのみをデプロイします。
  • ClusterRolesとClusterRoleBindingsをデプロイするFlink Operatorユーザ。Flink Operatorはクロスネームスペースにデプロイするための権限が必要な場合があります。

インストールに必要なKubernetes権限の詳細については、「必須のKubernetes権限」を参照してください。

SystemLink Admin Valuesファイルをダウンロードする

systemlink-admin-values.yamlのコピーをダウンロードします。

別のデプロイメントの一部としてArgo Workflows CRDがすでにインストールされている場合は、argoworkflowscrds.crds.installfalseに設定します。
argoworkflowscrds:
  crds:
    install: false
すでにKubernetesクラスタにFlink Operatorがデプロイされている場合は、flinkoperator.enabledfalseに設定します。
flinkoperator:
  enabled: false

前提条件をインストールする

helm upgrade <admin-release> oci://downloads.artifacts.ni.com/ni-docker/ni/helm-charts/systemlinkadmin --install --version <version> --namespace <admin-namespace> --values systemlink-admin-values.yaml --values systemlink-values.yaml --values systemlink-secrets.yaml --wait --timeout 20m0s
表 8. クラスタインストールの前提条件
パラメータ 説明
admin-release SystemLink Admin Helmチャートのインストールに使用するリリース名です。
downloads.artifacts.ni.com/ni-docker レジストリのURL。ローカルミラーを使用している場合は、このURLをミラーレジストリのURLに置き換えます。
バージョン インストールするソフトウェアの特定のバージョン。
admin-namespace SystemLink Admin Helmチャート用に作成されるネームスペース。

このコマンドは、インストールが完了し、すべてのリソースが準備完了状態になるまでの間、最大で構成済みのタイムアウト時間まで待機します。デフォルトのタイムアウトは20分です。このタイムアウト時間は控えめな値ですが、インストールにかかる時間はさまざまな要因によって異なる場合があります。必要に応じて、タイムアウトを調整してください。

SystemLink Enterpriseを構成する

SystemLink Enterpriseをインストールする前に、SystemLink値ファイルを構成する必要があります。開始するには、SystemLink Enterprise GitHubリポジトリからテンプレート構成ファイルをダウンロードします。

このマニュアルでは、systemlink-values.yamlsystemlink-admin-values.yaml、およびsystemlink-secrets.yamlの構成パラメータについて説明しています。このマニュアルの各トピックは、その構成領域に適用される特定のHelm値を参照しています。

Elasticsearchインスタンスを構成する

リモートのElasticsearchデータベースにアクセスできるようにSystemLink Enterpriseを構成し、拡張性とパフォーマンスを向上させます。

以下の条件の場合に、ここに示す手順を実行する必要があります。

  • 2025-07より前のSystemLink Enterpriseバージョンからアップグレードしています。
  • 検索性能を向上させる場合。
メモ この機能は現在、FileIngestionおよびAssetサービスでのみ利用できます。

Elasticsearchデプロイメントを選択する

SystemLinkは、Elasticsearchを使用して検索性能を向上させます。Elasticsearchインスタンスは、SystemLink Enterpriseインストールまたは外部インスタンスと同じKubernetesクラスタ内で使用できます。

以下の表を使用して、ユースケースに最適なElasticsearchデプロイメントを選択してください。
表 9. Elasticsearchデプロイメントオプション
デプロイメント 使用目的 詳細
SystemLink Elasticsearch Helmチャート
  • SystemLink Enterpriseと同じKubernetesクラスタにデータベースが必要な場合。
  • 組織がElasticsearchインスタンスの管理に慣れている場合。
  • SystemLink Enterpriseでユーザの自動プロビジョニングおよびユーザ専用の構成が必要な場合。

このインスタンスは、テイントと許容を使用して、既存のKubernetesワーカノードまたは専用ワーカノードで実行することができます。

詳細と推奨リソースについては、「Elasticsearchインスタンスをデプロイする際のサイズ変更に関する注意事項」を参照してください。

Elastic Cloud データベースのプロビジョニング、操作、バックアップ、復元操作を簡素化したい場合。 詳細と推奨リソースについては、「Elasticsearchインスタンスをデプロイする際のサイズ変更に関する注意事項」を参照してください。

自動プロビジョニングを有効にしてSystemLink Elasticsearch Helmチャートを構成する

Elasticsearchをはじめて構成する場合、パスワードをプロビジョニングする必要があります。

  1. elasticsearch.yamlファイルを開きます。
  2. sl-elasticsearch.usersProvisioning.enabledの値をTrueに設定します。
  3. elasticsearch-secrets.yamlファイルを開きます。
  4. 各指標のパスワードを設定します。
    表 10. 有効な自動プロビジョニングのインデックス
    サービス ユーザ パスワード
    assetservicecdc assetscdc sl-elasticsearch.secrets.assetscdcPassword
    fileingestioncdc filescdc sl-elasticsearch.secrets.filescdcPassword
  5. Elasticsearchをデプロイします。

自動プロビジョニングを無効にしてリモートElasticsearchインスタンスまたはSystemLink Elasticsearch Helmチャートを構成する

Elasticsearchをはじめて構成する場合、指標をプロビジョニングする必要があります。

  1. systemlink-secrets.yamlファイルを開きます。
  2. 各指標のパスワードを設定します。
    メモ サービスによっては、複数の指標に対する権限が必要になる場合があります。たとえば、files,files_*パラメータが指定されている場合、サービスには以下の指標に対する権限が必要です。
    • ファイルインデックス。
    • files_*パターンに一致するすべてのインデックス (*はワイルドカード)。
    表 11. 無効な自動プロビジョニングのインデックス
    サービス データベース ユーザ パスワード
    assetservice assets,assets_* assetscdc assetservice.secrets.elasticsearch.password
    assetservicecdc assets,assets_* assetscdc assetservicecdc.secrets.elasticsearch.password
    fileingestion files,files_* filescdc fileingestion.secrets.elasticsearch.password
    fileingestioncdc files,files_* filescdc fileingestioncdc.secrets.elasticsearch.password
  3. Elasticsearchをデプロイします。

Elasticsearchインスタンスをデプロイする際のサイズ変更に関する注意事項

リソース要件は、サービスの使用状況に基づきます。予想される使用状況に基づいてリソースを構成する際には、特定のスケールでテストされた構成を示す以下の表を参照してください。

データのスケールに対応できるようにElasticsearchインスタンスを構成します。

メモ これらのリソース要件が示す値は、Elasticsearchの使用が増えるにつれて増加します。
表 12. Elasticsearchインスタンスのサイズ設定に関する注意事項
使用レベル スケール ノード CPU RAM 持続性
ベースライン 25,000資産 2 1 4 GB 1 GB
一般 25,000資産および2,500万ファイル 2 2 2 4 GB
高速 25,000資産および8,000万ファイル 4 2 4 GB 200 GB

お使いのスケールに基づいて、構成を選択し、適用します。

  1. elasticsearch.yamlファイルを開きます。
  2. sl-elasticsearch.elasticsearch.master.replicaCountの値を、記載されているノード数に設定します。
    メモ 最適な構成では、ノード数は構成されたプライマリシャードの最大数よりも小さくしてはいけません。
  3. sl-elasticsearch.elasticsearch.master.resources.requests.cpuの値を記載されているCPUに設定します。
  4. sl-elasticsearch.elasticsearch.master.resources.requests.memoryの値とsl-elasticsearch.elasticsearch.master.resources.limits.memoryの値を、記載されているRAMに設定します。
  5. sl-elasticsearch.elasticsearch.master.persistence.sizeの値を、記載されている永続ストレージのサイズに設定します。

プライマリシャードの数を構成する

Elasticsearchのノード数よりも各サービスのプライマリシャード数を少なくすることで、SystemLink構成を最適化します。

以下の表には、NIがサービスごとに特定のスケールでテストした構成が記載されています。

表 13. テスト済みサービス構成
サービス スケール プライマリシャード
資産サービス 25,000資産 1
ファイル取り込みサービス 2,500万ファイル 2
ファイル取り込みサービス 8,000万ファイル 4
  1. systemlink-values.yamlファイルを開きます。
  2. 以下の変数のシャード数を設定します。
    • assetservicecdc.job.connectors.sink.elasticsearch.index.primaryShardsCount
    • fileingestioncdc.job.connectors.sink.elasticsearch.index.primaryShardsCount
  3. systemlink-values.yamlファイルを保存します。
メモ シャード構成は、初回のデプロイメント時にのみ機能します。最初のデプロイメント後に構成を変更するには、Elasticsearchからfilesインデックスとassetsインデックスを手動で削除する必要があります。その後、FileIngestionCDCアプリケーションまたはAssetServiceCDCアプリケーションを再デプロイできます。

アプリケーションをインストールする

クラスタにSystemLink Enterpriseをインストールします。

インストールを実行するユーザには、完全なクラスタへのアクセス権は必要ありません。ただし、ユーザはアプリケーション用に作成されたネームスペースへの完全なアクセス権を持っている必要があります。

インストールに必要なKubernetes権限の詳細については、「必須のKubernetes権限」を参照してください。
メモ このトピックでは、データベース証明書の名前をpostgres.pemと想定していますが、任意の名前を使用できます。SystemLink Enterpriseは、証明書をConfigMapリソースとしてデプロイします。

SystemLink Enterpriseをインストールする

helm upgrade <release> oci://downloads.artifacts.ni.com/ni-docker/ni/helm-charts/systemlink --install --version <version> --namespace <namespace> --values systemlink-values.yaml --values systemlink-secrets.yaml --set-file database.postgresCertificate=postgres.pem --wait --timeout 20m0s
表 14. SystemLink Enterprise インストールパラメータ
パラメータ 説明
リリース インストールしたソフトウェアのコレクションにHelmが割り当てる名前。
downloads.artifacts.ni.com/ni-docker レジストリのURL。ローカルミラーを使用している場合は、このURLをミラーレジストリのURLに置き換えます。
バージョン インストールするソフトウェアの特定のバージョン。
namespace アプリケーションのネームスペース。

このコマンドは、インストールが完了し、すべてのリソースが準備完了状態になるまでの間、最大で構成済みのタイムアウト時間まで待機します。デフォルトのタイムアウトは20分です。このタイムアウト時間は控えめな値ですが、インストールにかかる時間はさまざまな要因によって異なる場合があります。必要に応じて、タイムアウトを調整してください。

メモ 同じクラスタにSystemLink Enterpriseの複数のインスタンスをインストールできます。複数のインスタンスをインストールするには、インスタンスごとに異なるネームスペースと値を使用して上記のコマンドを繰り返します。クラスタ前提条件は、すべてのインスタンスに対して1回のみインストールされます。

インストールを検証する

SystemLink Enterpriseが正しくインストールされたことをテストします。

以下のいずれかの方法で、SystemLink Enterprise Helmチャートによってデプロイされたポッドの準備プローブを検査すると、SystemLink Enterpriseが正常にインストールされたことを確認できます。

  • Lensなどのアプリケーションを使用します。
  • 次のコマンドを実行します。
    kubectl describe pod <pod-name> -n <namespace>
ポッドが準備完了状態にならず、数分後に再起動し続ける場合は、NIはポッドをデバッグすることを推奨します。以下のコマンドでポッドのログを確認して、ポッドをデバッグできます。
kubectl logs <pod-name> -n <namespace>