3.2. TektonConfig CR を使用したパフォーマンスチューニング
TektonConfig
カスタムリソース (CR) の .spec.pipeline.performance
パラメーターの下のフィールドを変更して、OpenShift Pipelines コントローラーの高可用性 (HA) サポートとパフォーマンス設定を変更できます。
TektonConfig パフォーマンスフィールドの例
apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: pipeline: performance: disable-ha: false buckets: 7 replicas: 5 threads-per-controller: 2 kube-api-qps: 5.0 kube-api-burst: 10
すべてのフィールドは任意です。これらを設定すると、Red Hat OpenShift Pipelines Operator には、openshift-pipelines-controller
コンテナーの下にある openshift-pipelines-controller
デプロイメントにほとんどのフィールドが引数として含まれます。OpenShift Pipelines Operator は openshift-pipelines
namespace の下の config-leader-election
設定マップの buckets
フィールドも更新します。
値を指定しない場合、OpenShift Pipelines Operator はそれらのフィールドを更新せず、OpenShift Pipelines コントローラーのデフォルト値を適用します。
いずれかのパフォーマンスフィールドを変更または削除すると、OpenShift Pipelines Operator は openshift-pipelines-controller
デプロイメントおよび config-leader-election
設定マップ (buckets
フィールドが変更された場合) を更新し、openshift-pipelines-controller
Pod を再作成します。
高可用性 (HA) モードは、パイプライン実行およびタスク実行定義に基づいて Pod を作成および開始する OpenShift Pipelines コントローラーに適用されます。HA モードを使用しない場合、単一の Pod がこれらの操作を実行するため、高負荷時には大幅な遅延が発生する可能性があります。
HA モードでは、OpenShift Pipelines は複数の Pod (レプリカ) を使用してこれらの操作を実行します。最初に、OpenShift Pipelines はすべてのコントローラー操作をバケットに割り当てます。各レプリカは 1 つ以上のバケットからオペレーションを選択します。2 つのレプリカが同時に同じ操作を選択できる場合、コントローラーはこの操作を実行する リーダー を内部で決定します。
HA モードは、Pod の作成後にタスク実行には影響しません。
名前 | 説明 | OpenShift Pipelines コントローラーのデフォルト値 |
---|---|---|
| 高可用性 (HA) モードを有効または無効にします。デフォルトでは、HA モードが有効になっています。 |
|
|
HA モードの場合、コントローラー操作の処理に使用されるバケットの数。最大値は |
|
|
HA モードの場合、コントローラー操作を処理するために作成された Pod の数。この値は |
|
| OpenShift Pipelines コントローラーのワークキューが処理されるときに使用するスレッド (ワーカー) の数。 |
|
| REST クライアントからクラスターマスターへの 1 秒あたりの最大クエリー数 (QPS)。 |
|
| スロットルの最大バースト。 |
|
OpenShift Pipelines Operator は、OpenShift Pipelines コントローラーのレプリカの数を制御しません。デプロイメントの replica
設定によって、レプリカの数が決まります。たとえば、レプリカの数を 3 に変更するには、次のコマンドを入力します。
$ oc --namespace openshift-pipelines scale deployment openshift-pipelines-controller --replicas=3
kube-api-qps
と kube-api-burst
フィールドは、OpenShift Pipelines コントローラーで 2 倍にされます。たとえば、kube-api-qps
および kube-api-burst
の値が 10
の場合、実際の QPS およびバースト値は 20
になります。