アプリケーション限定イメージとロードバランサーを使用したクラスタ
概要
今回の手順では、2ノードのYellowfin クラスタを作成し、各ノードに6GBのRAMを割り当て、TraefikがDNSホスト名またはIPアドレスの80ポート (標準的なHTTPポート) からのリクエストをYellowfinインスタンスに転送します。
TraefikをフロントにしてYellowfinを導入する場合、YellowfinのKubernetes サービスは、Kubernetesの「ClusterIP」サービスタイプがデフォルトとなるため、Kubernetes クラスタの外部インターフェイスにポートを公開しません。
これらのデフォルトを使用してYellowfin クラスタを導入する前に、リポジトリデータベースを作成し、Yellowfin コンテナで使用するのと同じバージョンのYellowfinと同期していることを確認してください。これを実行するには、Yellowfinのフルアプリケーションインストーラーをダウンロードし、ワークステーションにインストールします。これにより、フォルダー内にYellowfin リポジトリデータベースおよびYellowfin インスタンスが作成されます。これらは、コンテナの設定後に削除することができます。
サポートされているデータベースのタイプを確認するには、Yellowfinのインストールおよび導入ページでデータベース情報を参照してください。
Yellowfin クラスタを導入するには、次の手順に従います。
ワークステーションに、Yellowfinのフルアプリケーションインストーラーバージョンをインストールします (これは、コンテナがリポジトリデータベースを使用できるようにするための一時的なものです)。
このインストールからweb.xml ファイルをコピーし、バックアップとして任意の場所に保存します (これは、Yellowfin リポジトリデータベースに接続するために必要なYellowfin 認証情報の参照として機能します)。
Kubernetesが実行され、Traefikがインストールされていることを確認します。
次のテキストをコピーし、任意のテキストエディターに貼り付けます。
--- ### Yellowfin Cluster Service ### apiVersion: v1 kind: Service metadata: name: yellowfin-cluster spec: ports: - protocol: TCP name: web port: 8080 selector: app: yellowfin-cluster --- ### Yellowfin Cluster Deployment ### kind: Deployment apiVersion: apps/v1 metadata: namespace: default name: yellowfin-cluster labels: app: yellowfin-cluster spec: replicas: 2 selector: matchLabels: app: yellowfin-cluster template: metadata: labels: app: yellowfin-cluster spec: containers: - env: - name: APP_MEMORY value: "6144" - name: CLUSTER_PORT value: "7800" - name: JDBC_CLASS_NAME value: INSERT_DATABASE_TYPE_HERE - name: JDBC_CONN_ENCRYPTED value: "true" - name: JDBC_CONN_PASS value: INSERT_JDBC_PASSWORD_HERE - name: JDBC_CONN_URL value: jdbc:INSERT_JDBC_CONNECTION_STRING_HERE - name: JDBC_CONN_USER value:INSERT_DATABASE_USER_HERE - name: NODE_BACKGROUND_TASKS value: REPORT_BROADCAST_BROADCASTTASK,REPORT_BROADCAST_MIREPORTTASK,FILTER_CACHE,SOURCE_FILTER_REFRESH,SOURCE_FILTER_UPDATE_REMINDER,THIRD_PARTY_AUTORUN,ORGREF_CODE_REFRESH,ETL_PROCESS_TASK,SIGNALS_DCR_TASK,SIGNALS_ANALYSIS_TASK,SIGNALS_CLEANUP_TASK,COMPOSITE_VIEW_REFRESH,SIGNALS_CORRELATION_TASK - name: NODE_PARALLEL_TASKS value: 4,4,4,4,4,4,4,4,4,4,4,4,4 name: yellowfin-cluster image: yellowfinbi/yellowfin-app-only:<RELEASE_VERSION_GOES_HERE> ports: - name: web containerPort: 8080 --- ### Yellowfin Cluster Ingress ### apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: yellowfiningressroute namespace: default spec: entryPoints: - webs routes: - match: Host(`INSERT_DNS_HOSTNAME`) kind: Rule services: - name: yellowfin-cluster port: 8080 sticky: cookie: httpOnly: true name: stickyCookie
上記テキストを確認し、データベース接続設定を独自の設定詳細に置き換えます (これらは、Yellowfin インストールのweb.xml ファイルにあります)。
上記テキストで、INSERT_DNS_HOSTNAMEを、Traefikがリッスンするための独自のDNS名 (またはIPアドレス) に置き換えて、リクエストをYellowfin インスタンスにルーティングします。以下の例では、DNS名の例を追加しました。
### Yellowfin Cluster Ingress ### apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: yellowfiningressroute namespace: default spec: entryPoints: - webs routes: - match: Host(`yellowfin.example.com`) kind: Rule services: - name: yellowfin-cluster port: 8080 sticky: cookie: httpOnly: true name: stickyCookie
テキストをyellowfin-cluster.ymlと呼ばれるYAML ファイルに保存します。
Yellowfinを導入するためにターミナルから次のコマンドを実行し、バックグラウンドで実行します。
Kubectl apply –f yellowfin-cluster.ymlホストURLを入力し、Yellowfinを起動します。
Yellowfinがコンテナから実行されていること、およびログインできることを確認します (これにより、ログイン認証情報が正しいことが確認されるので、Yellowfinのワークステーションインスタンスを安全に削除することができます)。
フォルダーを削除して、Yellowfinのワークステーションインスタンスを削除します。
AWS EKSを使用している場合や、Yellowfinインスタンスのクラスタリングに問題がある場合は、以下の環境変数CLUSTER_INTERFACEと値をKubernetesデプロイメントファイルのコンテナセクションにマージしてください。
containers: -env name: CLUSTER_INTERFACE value: "match-interface:eth1"
項目ナビゲーション
現在のトピック - コンテナ環境へのインストール
本ページはコンテナ環境へのインストール項目の一部であり、DockerおよびKubernetesそれぞれの項目には、以下のページが含まれます。
本ページはYellowfinのインストールおよび導入項目の一部であり、以下のトピックを含みます。