6.7. 高可用性
高可用性 (HA) は Kubernetes API の標準的な機能で、中断が生じる場合に API が稼働を継続するのに役立ちます。HA デプロイメントでは、アクティブなコントローラーがクラッシュまたは削除された場合、別のコントローラーをすぐに使用できます。このコントローラーは、現在使用できないコントローラーによって処理されていた API の処理を引き継ぎます。
OpenShift Serverless の HA は、リーダーの選択によって利用できます。これは、Knative Serving または Eventing コントロールプレーンのインストール後にデフォルトで有効になります。リーダー選択の HA パターンを使用する場合、必要時に備えてコントローラーのインスタンスはスケジュールされ、クラスター内で実行されます。これらのコントローラーインスタンスは、共有リソースの使用に向けて競います。これは、リーダー選択ロックとして知られています。リーダー選択ロックのリソースにアクセスできるコントローラーのインスタンスはリーダーと呼ばれます。
6.7.1. Knative Serving の高可用性レプリカの設定
高可用性 (HA) は、デフォルトで Knative Serving activator
、autoscaler
、autoscaler-hpa
、controller
、webhook
、kourier-control
、および kourier-gateway
コンポーネントで使用できます。これらのコンポーネントは、デフォルトでそれぞれ 2 つのレプリカを持つように設定されています。KnativeServing
カスタムリソース (CR) の spec.high-availability.replicas
値を変更して、これらのコンポーネントのレプリカ数を変更できます。
前提条件
- クラスター管理者のパーミッションを持つ 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 タブに移動します。
KnativeServing
CR のレプリカ数を変更します。サンプル YAML
apiVersion: operator.knative.dev/v1beta1 kind: KnativeServing metadata: name: knative-serving namespace: knative-serving spec: high-availability: replicas: 3
6.7.2. Knative Eventing の高可用性レプリカの設定
Knative Eventing の eventing-controller
、eventing-webhook
、imc-controller
、imc-dispatcher
、mt-broker-controller
コンポーネントは、デフォルトでそれぞれ 2 つのレプリカを持つように設定されており、高可用性 (HA) を利用することができます。KnativeServing
カスタムリソース (CR) の spec.high-availability.replicas
値を変更して、これらのコンポーネントのレプリカ数を変更できます。
Knative Eventing の場合には、HA では mt-broker-filter
および mt-broker-ingress
デプロイメントはスケーリングされません。複数のデプロイメントが必要な場合は、これらのコンポーネントを手動でスケーリングします。
前提条件
- クラスター管理者のパーミッションを持つ OpenShift Container Platform クラスターにアクセスできる。
- OpenShift Serverless Operator および Knative Eventing がクラスターにインストールされている。
手順
-
OpenShift Container Platform Web コンソールの Administrator パースペクティブで、OperatorHub
Installed Operators に移動します。 -
knative-eventing
namespace を選択します。 - OpenShift Serverless Operator の Provided API 一覧で Knative Eventing をクリックし、Knative Eventing タブに移動します。
knative-serving をクリックしてから、knative-eventing ページの YAML タブに移動します。
KnativeEvening
CR のレプリカ数を変更します。サンプル YAML
apiVersion: operator.knative.dev/v1beta1 kind: KnativeEventing metadata: name: knative-eventing namespace: knative-eventing spec: high-availability: replicas: 3
6.7.3. Knative Kafka の高可用性レプリカの設定
高可用性 (HA) は、デフォルトで Knative Kafka Kafka-controller
および kafka-webhook-eventing
コンポーネントで使用できます。これらのコンポーネントは、デフォルトで各レプリカが 2 つあるように設定されています。KnativeKafka
カスタムリソース (CR) の spec.high-availability.replicas
値を変更して、これらのコンポーネントのレプリカ数を変更できます。
前提条件
- クラスター管理者のパーミッションを持つ OpenShift Container Platform クラスターにアクセスできる。
- OpenShift Serverless Operator および Knative Kafka がクラスターにインストールされている。
手順
-
OpenShift Container Platform Web コンソールの Administrator パースペクティブで、OperatorHub
Installed Operators に移動します。 -
knative-eventing
namespace を選択します。 - OpenShift Serverless Operator の Provided APIs の一覧で Knative Kafka をクリックし、 Knative Kafka タブに移動します。
knative-kafka をクリックしてから、knative-kafka ページの YAML タブに移動します。
KnativeKafka
CR のレプリカ数を変更します。サンプル YAML
apiVersion: operator.serverless.openshift.io/v1alpha1 kind: KnativeKafka metadata: name: knative-kafka namespace: knative-eventing spec: high-availability: replicas: 3