Deploy Syntho using Helm

Syntho アプリケーションをデプロイするには, と同じリポジトリにあるHelmチャートを使用する。 mentioned before.のリリースに掲載されている。 deployment-tools またはGithubのレポから直接クローンすることもできる。, これはチャートへのパスを helm/syntho-ui

UIを設定するには, その values.yaml ファイル helm/syntho-ui を使用することができる。以下のセクションでは、設定可能なさまざまなフィールドについて説明する。

UIの設定

UIについて, まず、画像のリポジトリとタグを設定する必要がある。:

イメージ:
  リポジトリ: synthoregistry.azurecr.io/syntho-core-frontend
  タグ: 最新

UIのドメイン名も設定する必要がある。

frontend_url: <hostname-or-ip>
フロントエンド・プロトコル: https # SSL証明書の有無によってhttpかhttpsになる

イングレスはUIに必要で、ヘルムチャートの一部である。, UIのイングレス・コンフィギュレーションは以下のように設定できる。:

イングレス:
    使用可能: 真
    名前: フロントエンド・イングレス
    クラス名: nginx # 使用するイングレスコントローラのクラス名を設定する
    アノテーション: {
      cert-manager.io/cluster-issuer: "", # SSLにcert-managerが使われている場合
      nginx.ingress.kubernetes.io/proxy-buffer-size: "32k",
      nginx.ingress.kubernetes.io/affinity: 「クッキー,
      nginx.ingress.kubernetes.io/use-regex: 真,
      nginx.ingress.kubernetes.io/proxy-connect-timeout: "600",
      nginx.ingress.kubernetes.io/proxy-read-timeout: "600",
      nginx.ingress.kubernetes.io/proxy-send-timeout: "600",
      nginx.ingress.kubernetes.io/proxy-body-size: "512m",
    }
    ホスト:
      - ホスト: <hostname>
        小道:
          - パス: /
            パスタイプ: プリフィックス
    
    TLS:  # SSLを使用しない場合, tlsセクションは削除可能
      - ホスト:
        - <hostname>
        シークレットネーム: frontend-tls # 既存のシークレットを設定するか、cert-managerを使って証明書を管理する場合に設定します。

これにより、UIとバックエンドアプリケーションの両方にIngress定義が作成されます。トラフィックの一部はバックエンドにルーティングされます。, 同じドメイン名からのすべてのトラフィックに対応できるようにするためである。

{ヒント style="info" %}。 Note: SSL証明書が自己署名証明書またはコンテナ内で検証できない証明書の場合, インスタンスが証明書を検証できない場合は、追加の変数を設定する必要があります。

以下のコード・ブロックを参照してください。:

フロントエンド:
  羨望:
    JAVA_OPTIONS: "-Dio.swagger.parser.util.RemoteUrl.trustAll=true -Dio.swagger.v3.parser.util.RemoteUrl.trustAll=true"

バックエンドの設定

バックエンドはユーザー管理とワークスペース管理を行う。いくつかの変数を正しく設定する必要があります。最初に, 画像を設定する必要がある:

バックエンド:
  イメージ:
    リポジトリ: synthoregistry.azurecr.io/syntho-core-backend
    タグ: 最新

バックエンドデータベースとバックエンドレディス

次に、データベースの認証情報とRedisの認証情報を設定する必要があります。Helmチャートで定義されたインスタンスを使用する場合, 変更は必要ない。その他, 以下を変更する必要がある。:

バックエンド:
  デブ:
    ホスト: <hostname>
    ポート: <port>
    ユーザー: <username>
    パスワード: <password>
    名称: <database>
  レディス:
    ホスト: レディスサービス
    ポート: 6379
    デブ: 0

Redisセクションは、HelmチャートからRedisインスタンスを使用する場合、上記の定義に従って設定できます。デフォルトの動作では、チャートで定義された Redis インスタンスがデプロイされます。別のRedisインスタンスを使用している場合, host, port そして db を変更する必要があるかもしれない。

異なるデータベースを使用する場合は、データベース・セクションを変更する必要があります。デフォルトの動作では、チャートで定義されたデータベースインスタンスがデプロイされます。Helmチャート外の異なるデータベースを使用している場合, 主人, ポート, ユーザー, パスワード, とデータベース名を変更する必要があります。チャートで定義したデータベース・インスタンスの使用とデプロイを無効にするには, 以下の設定が可能です。:

バックエンド:
  データベース有効: 擬似

データベースがHelmチャートから使用されている場合, 価値 host に設定できる。 database そして port への 5432.ユーザー名が異なる場合は、他の値を変更できます。, パスワード, またはデータベース名を指定します。これにより、Helmチャートで定義されたデータベースインスタンスが自動的に調整されます。

バックエンド・イングレス

バックエンドイングレスはUI用に定義されたイングレスの一部として実装されます。トラフィックの一部をバックエンドにルーティングするために、イングレスでパスベースのルーティングを使用します(具体的には、バックエンドに向かうすべてのトラフィックを /api/* ).バックエンドに追加のイングレスは必要ない。

Admin user credentials

最初の管理ユーザーの認証情報の設定も必要である。このユーザーを次のように定義する:

バックエンド:
  ユーザー:
    ユーザー名: 管理者
    パスワード: パスワード
    電子メール: admin@company.com

このユーザーはUIにログインし、他のユーザーを作成するために使用することができます。

シークレットキー

最後に, を設定する必要がある。, 以下のブロックで定義されている:

secret_key: (^ky&f)l&$3sqf2tctv-(pgzvh!+9$j%b5xe2y@&%p2ay*h$$a # 秘密鍵として使用するランダム文字列

コアAPIの設定

コアAPIを設定するには, まず、正しい画像を設定する必要がある。画像を設定するには image フィールドの core セクションを参照されたい。

イメージ:
  リポジトリ: synthoregistry.azurecr.io/syntho-core-api
  タグ: 最新

さらに, データベースのホスト名と認証情報を設定する必要があります。:

コア:
  デブ:
    ユーザー名: <database-username>
    パスワード: <database-password>
    名称: <database-name>
    ホスト: <database-host>
    ポート: <database-port>

デプロイメントでは、データベースインスタンス自体を作成することができます。その場合, その database_enabled フィールドを true:

コア:
  データベース有効: 真の

これは指定されたユーザー名でデータベースを作成する。, パスワード, とデータベース名を指定します。このデータベースのホストは backend となり、ポートは 5432 これはPostgresデータベースである。

最後に, 暗号化のために秘密鍵を設定する必要がある。, には、Redisインスタンスの認証情報と、接続先のRayヘッドのIPまたはホスト名を指定します。Rayヘッドのホスト名は、セクション Deploy Ray using Helm.

secret_key: UNIbrRR0CnhPEB0BXKQSDASaNzT1IYgQWWaLyQ1W1iPg= # フェルネット・キー: python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" を実行して生成する。
redis:
    ホスト: レディスサービス
    ポート: 6379
    デブ: 1
レイアドレス: <ray-head-ip-or-hostname>

を使って生成することができます。 cryptography ライブラリを使用する。以下のコマンドを実行すると、ランダムに生成されたfernetキーがCLIに表示されます。:

python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"

Redisのインスタンスは redis: セクションで指定します。デフォルト値は、Helmチャートの一部としてデプロイされたRedisインスタンスを指す。

デプロイ

Syntho アプリケーションをデプロイするには, シンソチームから提供されたヘルムチャートを使用します。このチャートは helm/syntho フォルダー

helm install syntho-ui ./helm/syntho-ui --values values.yaml --namespace syntho 

Last updated