第7章 OpenShift Serverless での高可用性
高可用性 (HA) は Kubernetes API の標準的な機能で、中断が生じる場合に API が稼働を継続するのに役立ちます。HA デプロイメントでは、アクティブなコントローラーがクラッシュするか、または削除されると、現在利用できないコントローラーが提供されている API の処理を引き継ぐために別のコントローラーが利用可能になります。
OpenShift Serverless の HA は、リーダーの選択によって利用できます。これは、Knative Serving コントロールプレーンのインストール後にデフォルトで有効になります。
リーダー選択の HA パターンを使用する場合、必要時に備えてコントローラーのインスタンスはスケジュールされ、クラスター内で実行されます。これらのコントローラーインスタンスは、共有リソースの使用に向けて競います。これは、リーダー選択ロックとして知られています。リーダー選択ロックのリソースにアクセスできるコントローラーのインスタンスはリーダーと呼ばれます。
7.1. OpenShift Serverless での高可用性レプリカの設定
高可用性 (HA) 機能は、autoscaler-hpa
、controller
、activator
、kourier-control
、および kourier-gateway
コンポーネントについてデフォルトで OpenShift Serverless で利用できます。これらのコンポーネントは、デフォルトで 2 つのレプリカで設定されます。
KnativeServing
カスタムリソース定義 (CRD) の KnativeServing.spec.highAvailability
仕様の設定を変更して、コントローラーごとに作成されるレプリカの数を変更します。
前提条件
- クラスター管理者のアクセスを持つ OpenShift Container Platform アカウント。
- 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 タブに移動します。
カスタムリソース定義 YAML を編集します。
サンプル YAML
apiVersion: operator.knative.dev/v1alpha1 kind: KnativeServing metadata: name: knative-serving namespace: knative-serving spec: high-availability: replicas: 3
重要config
フィールドに含まれる YAML は変更しないでください。このフィールドの設定値の一部は OpenShift Serverless Operator によって挿入され、これらを変更すると、デプロイメントはサポートされなくなります。-
デフォルトの
replicas
値は2
です。 -
値を
1
に設定すると HA が無効になります。または、必要に応じてレプリカの数を増やすことができます。上記の設定例は、すべての HA コントローラーのレプリカ数3
を指定します。
-
デフォルトの