15.2. Knative デプロイメントの高可用性
高可用性 (HA) は、それぞれ 2 つのレプリカを持つように設定された Knative Serving activator
、autoscaler
、autoscaler-hpa
、controller
、webhook
、domain-mapping
、domainmapping-webhook
、kourier-control
、および kourier-gateway
コンポーネントでデフォルトで利用可能です。KnativeServing
カスタムリソース (CR) の spec.high-availability.replicas
値を変更して、これらのコンポーネントのレプリカ数を変更できます。
15.2.1. Knative Serving の高可用性レプリカの設定 リンクのコピーリンクがクリップボードにコピーされました!
適格なデプロイメントリソースに最小 3 つのレプリカを指定するには、カスタムリソースのフィールド spec.high-availability.replicas
の値を 3
に設定します。
前提条件
- OpenShift Container Platform に対するクラスター管理者権限があるか、Red Hat OpenShift Service on AWS または OpenShift Dedicated に対するクラスターまたは専用管理者権限がある。
- OpenShift Serverless Operator および Knative Serving がクラスターにインストールされている。
手順
-
OpenShift Container Platform Web コンソールの Administrator パースペクティブで、OperatorHub
Installed Operators に移動します。 -
knative-serving
namespace を選択します。 - OpenShift Serverless Operator の Provided API 一覧で Knative Serving をクリックし、Knative Serving タブに移動します。
knative-serving をクリックしてから、knative-serving ページの YAML タブに移動します。
KnativeServing
CR のレプリカ数を変更します。サンプル YAML
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 特定のワークロードのレプリカの数を指定することもできます。
注記ワークロード固有の設定は、Knative Serving のグローバル設定をオーバーライドします。
サンプル YAML
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 高可用性の制限が反映されていることを確認します。
コマンドの例
oc get hpa -n knative-serving
$ oc get hpa -n knative-serving
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE activator Deployment/activator 0%/100% 3 22 3 2m24s webhook Deployment/webhook 2%/100% 4 8 4 2m23s
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE activator Deployment/activator 0%/100% 3 22 3 2m24s webhook Deployment/webhook 2%/100% 4 8 4 2m23s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.2.2. 停止状態の予算のオーバーライド リンクのコピーリンクがクリップボードにコピーされました!
Pod Disruption Budget (PDB) は、Kubernetes API の標準機能であり、メンテナンス上の理由で Pod の再スケジュールが必要になったときにアプリケーションの中断を制限するのに役立ちます。
手順
-
KnativeServing
カスタムリソース (CR) のminAvailable
設定値を変更して、特定のリソースのデフォルトの PDB をオーバーライドします。
minAvailable
設定が 70% の PDB の例
たとえば、high-availability.replicas
の値を 1
に変更して高可用性を無効にする場合は、対応する PDB minAvailable
の値も 0
に更新してください。そうしないと、Pod 停止状態の予算によってクラスターまたは Operator の自動更新が妨げられます。