第10章 クラスターローダーの使用
10.1. クラスターローダーの機能
クラスターローダーとは、クラスターに対してさまざまなオブジェクトを多数デプロイするツールであり、ユーザー定義のクラスターオブジェクトを作成します。クラスターローダーをビルド、設定、実行して、さまざまなクラスターの状態にある OpenShift Container Platform デプロイメントのパフォーマンスメトリクスを測定します。
10.2. クラスターローダーのインストール
クラスターローダーは atomic-openshift-tests パッケージに含まれます。これをインストールするには、以下を実行します。
$ yum install atomic-openshift-tests
インストールが終わると、テスト用の実行ファイル extended.test は /usr/libexec/atomic-openshift/extended.test に配置されます。
10.3. クラスターローダーの実行
KUBECONFIG
変数は、管理者kubeconfig
の場所に設定します。$ export KUBECONFIG=${KUBECONFIG-$HOME/.kube/config}
組み込まれているテスト設定を使用してクラスターローダーを実行し、5 つのテンプレートビルドをデプロイして、デプロイメントが完了するまで待ちます。
$ cd /usr/libexec/atomic-openshift/ ./extended.test --ginkgo.focus="Load cluster"
または
--viper-config
のフラグを追加して、ユーザー定義の設定でクラスターローダーを実行します。$ ./extended.test --ginkgo.focus="Load cluster" --viper-config=config/test 1
- 1
- この例では、config/ というサブディレクトリーに test.yml ファイルが配置されています。コマンドラインでは、ファイルタイプと拡張子はツールが自動的に判断するので、設定ファイルを拡張子なしで実行します。
10.4. クラスターローダーの設定
複数のテンプレートや Pod を含む、namespaces (プロジェクト) を複数作成します。
クラスターローダーの設定ファイルを config/ サブディレクトリーに配置します。これらの設定ファイルで参照される Pod ファイルとテンプレートファイルは、content/ サブディレクトリーにあります。
10.4.1. 設定フィールド
フィールド | 説明 |
---|---|
|
|
|
1 つまたは多数の定義が指定されたサブオブジェクト。 |
|
設定ごとに 1 つの定義が指定されたサブオブジェクト。 |
|
設定ごとに 1 つの定義が指定されたオプションのサブオブジェクト。オブジェクト作成時に同期できるかどうかを追加します。 |
フィールド | 説明 |
---|---|
|
整数。作成するプロジェクト数の 1つの定義。 |
|
文字列。プロジェクトのベース名の定義。競合が発生しないように、同一の namespaces の数が |
|
文字列。オブジェクトに適用するチューニングセットの 1 つの定義。これは対象の namespace にデプロイします。 |
|
キーと値のペア一覧。キーは ConfigMap の名前で、値はこの ConfigMap の作成元のファイルへのパスです。 |
|
キーと値のペア一覧。キーはシークレットの名前で、値はこのシークレットの作成元のファイルへのパスです。 |
|
デプロイする Pod の 1 つまたは多数の定義を持つサブオブジェクト |
|
デプロイするテンプレートの 1 つまたは多数の定義を持つサブオブジェクト |
フィールド | 説明 |
---|---|
|
このフィールドは使用しません。 |
|
整数。デプロイする Pod またはテンプレート数。 |
|
文字列。プルが可能なリポジトリーに対する Docker イメージの URL。 |
|
文字列。作成するテンプレート (または Pod) のベース名の 1 つの定義。 |
|
文字列。ローカルファイルへのパス。作成する PodSpec またはテンプレートのいずれかです。 |
|
キーと値のペア。 |
フィールド | 説明 |
---|---|
|
文字列。チューニングセットの名前。プロジェクトのチューニングを定義する時に指定した名前と一致します。 |
|
Pod に適用される |
|
テンプレートに適用される |
フィールド | 説明 |
---|---|
|
サブオブジェクト。ステップ作成パターンでオブジェクトを作成する場合に使用するステップ設定。 |
|
サブオブジェクト。オブジェクト作成速度を制限するための速度制限チューニングセットの設定。 |
フィールド | 説明 |
---|---|
|
整数。オブジェクト作成を一時停止するまでに作成するオブジェクト数。 |
|
整数。 |
|
整数。オブジェクト作成に成功しなかった場合に失敗するまで待機する秒数。 |
|
整数。次の作成要求まで待機する時間 (ミリ秒)。 |
フィールド | 説明 |
---|---|
|
|
|
ブール値。 |
|
ブール値。 |
|
|
|
文字列。 |
10.4.2. クラスターローダー設定ファイルの例
クラスターローダーの設定ファイルは基本的な YAML ファイルです。
provider: local 1 ClusterLoader: cleanup: true projects: - num: 1 basename: clusterloader-cakephp-mysql tuning: default templates: - num: 1 file: ./examples/quickstarts/cakephp-mysql.json - num: 1 basename: clusterloader-dancer-mysql tuning: default templates: - num: 1 file: ./examples/quickstarts/dancer-mysql.json - num: 1 basename: clusterloader-django-postgresql tuning: default templates: - num: 1 file: ./examples/quickstarts/django-postgresql.json - num: 1 basename: clusterloader-nodejs-mongodb tuning: default templates: - num: 1 file: ./examples/quickstarts/nodejs-mongodb.json - num: 1 basename: clusterloader-rails-postgresql tuning: default templates: - num: 1 file: ./examples/quickstarts/rails-postgresql.json tuningset: 2 - name: default pods: stepping: 3 stepsize: 5 pause: 0 s rate_limit: 4 delay: 0 ms