Kubernetes アーキテクチャー
次の図は、Kubernetes 環境で実行されている典型的なYellowfin クラスタを示しており、これには通常Kubernetes導入例の大部分のコンポーネントが含まれています。こちらのアーキテクチャーではTraefikを使用していますが、スティッキーセッションを使用する任意のコンテナ対応プロキシを代わりに使用することができます。
上図の詳細な説明は以下の通りです。
- Kubernetes マスターノード
- Kubernetes ワーカーノード: Yellowfin コンテナは、Docker Swarm 環境のワーカーノード内に配置されます。
- Yellowfin コンポーネント: Yellowfin クラスタを形成するYellowfin Podです。これらのPodは、Kubernetes クラスタで利用可能なリソースに応じて、複数のKubernetes ワーカーノードに配置できます。Yellowfinの導入形式に応じて、Kubernetes 環境ではひとつ以上のYellowfin インスタンスが実行され、これらのインスタンスは同じデータベース (クラスタ化されたYellowfin 導入の場合) 、または異なるデータベース (個別のインスタンス導入の場合) に接続されます。
- DBMS: 現時点ではパフォーマンス上の理由から、本番環境の負荷向けにKubernetes Pod内でリポジトリデータベースを実行しないことを推奨しています。代わりに、専用のデータベースサーバーを準備してください。例えば、AWSの場合はEC2インスタンス、またはAWS RDSを使用します。
- Traefik: Traefikは、コンテナ対応のリバースプロキシで、Kubernetes 環境を実行し、Yellowfin インスタンスのロードバランシングとスティッキーセッションを制御します。TraefikとKubernetesについては、後ほど詳しく説明します。
Kubernetes上にYellowfinを単一インスタンスで導入する場合、Yellowfin Podはひとつしか存在しません。
その他のシナリオ
Kubernetes上に複数の個別のYellowfin インスタンスを導入する場合、Traefikの導入はオプションです。この状況で導入された場合、Yellowfin インスタンスに直接ルーティングするKubernetes クラスタのポートを公開する代わりに、リクエストを個別のYellowfin 導入にルーティングすることができます。または、(NGINXなど) スティッキーセッションをサポートするコンテナ対応プロキシがある場合は、Traefikを使用しないこともできます。
Kubernetes上の複数の個別のYellowfin インスタンスは、各Yellowfin インスタンスで異なるYellowfin リポジトリデータベースと通信します。
Yellowfin オールインワンイメージを使用している場合、イメージに独自のデータベースが組み込まれているため、外部のYellowfinリポジトリデータベースは必要ありません。
導入の準備
YellowfinをKubernetesに導入する前に、要件に適した導入の形式を選択していることを確認してください。今回の例では、Kubectlを使用してYellowfinをKubernetes 環境に導入しました。Kubectlを選択したのは、これがKubernetesのコントロールプレーン (マスターノード) と対話するための無料のコマンドラインツールであり、資料が充実しているからです。他にお好みのツールがある場合は、そちらを選択しても構いません。
Kubernetes上のYellowfinはこれがなくても動作しますが、ロードバランシングとスティッキーセッションのサポートを制御できるリバースプロキシを使用することを強く推奨します。今回は、(Traefikを使用して) プロキシを使用する環境と、プロキシを使用しない環境の導入手順を紹介しています。
前提条件
YellowfinをKubernetesに導入する前に、以下の準備が必要です。
- 実行中のKubernetes クラスタ
- ワークステーション/導入システムへのKubectlのインストール
- アプリケーションサーバのセキュリティの理解
- コンテナ環境におけるリバースプロキシとロードバランシングの理解
項目ナビゲーション
現在のトピック - コンテナ環境へのインストール
本ページはコンテナ環境へのインストール項目の一部であり、DockerおよびKubernetesそれぞれの項目には、以下のページが含まれます。
本ページはYellowfinのインストールおよび導入項目の一部であり、以下のトピックを含みます。