Helm チャートの入門 (TLS を使用した ScalarDB Cluster)
このドキュメントでは、Kubernetes クラスター上の Helm Chart をテスト環境として使用して、TLS 構成で ScalarDB クラスターを開始する方法について説明します。 ここでは、テスト用の Mac または Linux 環境がすでにあることを前提としています。 このドキュメントでは minikube を使用しますが、これから説明する手順はどの Kubernetes クラスターでも機能するはずです。
要件
- ScalarDB Cluster のライセンスキー(トライアルライセンスまたは商用ライセンス)を取得する必要があります。 ライセンスキーをお持ちでない場合は、お問い合わせ してください。
- TLSをサポートするScalarDB Cluster v3.12以降を使用する必要があります。
作成するもの
次のように、次のコンポーネントを Kubernetes クラスターにデプロイします。
+----------------------------------------------------------------------------------------------------------------------------------------------------+
| [Kubernetes Cluster] |
| [Pod] [Pod] [Pod] |
| |
| +-------+ +------------------------+ |
| +---> | Envoy | ---+ +---> | ScalarDB Cluster node | ---+ |
| [Pod] | +-------+ | | +------------------------+ | |
| | | | | |
| +-----------+ +---------+ | +-------+ | +--------------------+ | +------------------------+ | +---------------+ |
| | Client | ---> | Service | ---+---> | Envoy | ---+---> | Service | ---+---> | ScalarDB Cluster node | ---+---> | PostgreSQL | |
| | (SQL CLI) | | (Envoy) | | +-------+ | | (ScalarDB Cluster) | | +------------------------+ | | (For Ledger) | |
| +-----------+ +---------+ | | +--------------------+ | | +---------------+ |
| | +-------+ | | +------------------------+ | |
| +---> | Envoy | ---+ +---> | ScalarDB Cluster node | ---+ |
| +-------+ +------------------------+ |
| |
+----------------------------------------------------------------------------------------------------------------------------------------------------+
TLS 接続用に次の秘密キーファイルと証明書ファイルを作成します。
+-------------------------------+
+---> | For Scalar Envoy |
| +-------------------------------+
| | envoy-key.pem |
| | envoy.pem |
+----------------------+ | +-------------------------------+
| Self-signed CA | ---(Sign certificates)---+
+----------------------+ | +-------------------------------+
| ca-key.pem | +---> | For ScalarDB Cluster |
| ca.pem | +-------------------------------+
+----------------------+ | scalardb-cluster-key.pem |
| scalardb-cluster.pem |
+-------------------------------+
各接続で TLS を有効にするために、各秘密キーと証明書ファイルを次のように設定します。
+--------------------------------+ +-----------------------------------------+ +-----------------------------------------+
| Client | ---(CRUD/SQL requests)---> | Envoy for ScalarDB Cluster | ---> | ScalarDB Cluster nodes |
+--------------------------------+ +-----------------------------------------+ +-----------------------------------------+
| ca.pem (to verify envoy.pem) | | envoy-key.pem | | scalardb-cluster-key.pem |
+--------------------------------+ | envoy.pem | | scalardb-cluster.pem |
| ca.pem (to verify scalardb-cluster.pem) | | ca.pem (used for health check) |
+-----------------------------------------+ +-----------------------------------------+
ScalarDB Cluster 関連コンポーネント間には、次の接続があります。
クライアント - ScalarDB Cluster の Envoy
: 一部のCRUD APIやSQL APIを実行すると、クライアントはEnvoy for ScalarDB Clusterにアクセスします。ScalarDB Cluster の Envoy - ScalarDB Cluster
: Envoy は、ScalarDB Cluster の前の L7 (gRPC) ロードバランサーとして機能します。ScalarDB Cluster ノード - ScalarDB Cluster ノード
: ScalarDB Cluster ノードから別の ScalarDB Cluster ノードにアクセスします。 言い換えれば、すべての ScalarDB Cluster ノード間でクラスターの内部通信が行われます。
ステップ 1. Kubernetes クラスターを開始する
Kubernetes クラスターを準備し、いくつかのツール (kubectl
、helm
、cfssl
、および cfssljson
) をインストールする必要があります。 インストール方法の詳細については、Scalar Helm Charts の開始 を参照してください。