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 コンソールで、OperatorHub
Installed Operators に移動します。 -
knative-servingnamespace を選択します。 - OpenShift Serverless Operator の Provided API 一覧で Knative Serving をクリックし、Knative Serving タブに移動します。
- knative-serving をクリックしてから、knative-serving ページの YAML タブに移動します。
KnativeServingCR のレプリカ数を変更します。サンプル YAML
apiVersion: operator.knative.dev/v1beta1 kind: KnativeServing metadata: name: knative-serving namespace: knative-serving spec: high-availability: replicas: 3特定のワークロードのレプリカの数を指定することもできます。
注記ワークロード固有の設定は、Knative Serving のグローバル設定をオーバーライドします。
サンプル YAML
apiVersion: operator.knative.dev/v1beta1 kind: KnativeServing metadata: name: knative-serving namespace: knative-serving spec: high-availability: replicas: 3 workloads: - name: webhook replicas: 4高可用性の制限が反映されていることを確認します。
コマンドの例
$ oc get hpa -n knative-serving出力例
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
15.2.2. 停止状態の予算のオーバーライド リンクのコピーリンクがクリップボードにコピーされました!
Pod Disruption Budget (PDB) は、Kubernetes API の標準機能であり、メンテナンス上の理由で Pod の再スケジュールが必要になったときにアプリケーションの中断を制限するのに役立ちます。
手順
-
KnativeServingカスタムリソース (CR) のminAvailable設定値を変更して、特定のリソースのデフォルトの PDB をオーバーライドします。
minAvailable 設定が 70% の PDB の例
apiVersion: operator.knative.dev/v1beta1
kind: KnativeServing
metadata:
name: knative-serving
namespace: knative-serving
spec:
podDisruptionBudgets:
- name: activator-pdb
minAvailable: 70%
たとえば、high-availability.replicas の値を 1 に変更して高可用性を無効にする場合は、対応する PDB minAvailable の値も 0 に更新してください。そうしないと、Pod 停止状態の予算によってクラスターまたは Operator の自動更新が妨げられます。