9.4.14.9. インストール時の Kuryr ポートプールの調整

インストール時に、Pod 作成の速度や効率性を制御するために Kuryr で Red Hat OpenStack Platform (RHOSP) Neutron ポートを管理する方法を設定できます。

前提条件

  • install-config.yaml ファイルを作成して変更しておく。

手順

  1. コマンドラインからマニフェストファイルを作成します。

    $ ./openshift-install create manifests --dir <installation_directory> 1
    1
    <installation_directory> については、クラスターの install-config.yaml ファイルが含まれるディレクトリーの名前を指定します。
  2. cluster-network-03-config.yml という名前のファイルを <installation_directory>/manifests/ ディレクトリーに作成します。

    $ touch <installation_directory>/manifests/cluster-network-03-config.yml 1
    1
    <installation_directory> については、クラスターの manifests/ ディレクトリーが含まれるディレクトリー名を指定します。

    ファイルの作成後は、以下のようにいくつかのネットワーク設定ファイルが manifests/ ディレクトリーに置かれます。

    $ ls <installation_directory>/manifests/cluster-network-*

    出力例

    cluster-network-01-crd.yml
    cluster-network-02-config.yml
    cluster-network-03-config.yml

  3. エディターで cluster-network-03-config.yml ファイルを開き、必要な Cluster Network Operator 設定を記述するカスタムリソース (CR) を入力します。

    $ oc edit networks.operator.openshift.io cluster
  4. 要件に合わせて設定を編集します。以下のファイルをサンプルとして紹介しています。

    apiVersion: operator.openshift.io/v1
    kind: Network
    metadata:
      name: cluster
    spec:
      clusterNetwork:
      - cidr: 10.128.0.0/14
        hostPrefix: 23
      serviceNetwork:
      - 172.30.0.0/16
      defaultNetwork:
        type: Kuryr
        kuryrConfig:
          enablePortPoolsPrepopulation: false 1
          poolMinPorts: 1 2
          poolBatchPorts: 3 3
          poolMaxPorts: 5 4
          openstackServiceNetwork: 172.30.0.0/15 5
    1
    enablePortPoolsPrepopulation の値を true に設定し、namespace の作成時、または新規ノードがクラスターに追加された後に Kuryr が新規 Neutron ポートを作成するようにします。この設定により、Neutron ポートのクォータが引き上げられますが、Pod の起動に必要となる時間を短縮できます。デフォルト値は false です。
    2
    Kuryr は、対象のプール内にある空きポートの数が poolMinPorts の値よりも少ない場合には、プールに新規ポートを作成します。デフォルト値は 1 です。
    3
    poolBatchPorts は、空きポートの数が poolMinPorts の値よりも少ない場合に作成される新規ポートの数を制御します。デフォルト値は 3 です。
    4
    プール内の空きポートの数が poolMaxPorts の値よりも多い場合に、Kuryr はその値と同じ数になるまでポートを削除します。この値を 0 に設定すると、この上限は無効になり、プールが縮小できないようにします。デフォルト値は 0 です。
    5
    openStackServiceNetwork パラメーターは、RHOSP Octavia の LoadBalancer に割り当てられるネットワークの CIDR 範囲を定義します。

    このパラメーターを Amphora ドライバーと併用する場合には、Octavia は、ロードバランサーごとに、このネットワークから IP アドレスを 2 つ (OpenShift 用に 1 つ、VRRP 接続用に 1 つ) 取得します。これらの IP アドレスは OpenShift Container Platform と Neutron でそれぞれ管理されるため、異なるプールから取得する必要があります。したがって、openStackServiceNetwork serviceNetwork の値の 2 倍になる必要があり、serviceNetwork の値は、openStackServiceNetwork で定義された範囲と完全に重複する必要があります。

    CNO は、このパラメーターの定義範囲から取得した VRRP IP アドレスが serviceNetwork パラメーターの定義範囲と重複しないことを検証します。

    このパラメーターが設定されていない場合には、CNO は serviceNetwork の拡張値を使用します。この値は、プリフィックスのサイズを 1 つずつ減らして決定します。

  5. cluster-network-03-config.yml ファイルを保存し、テキストエディターを終了します。
  6. オプション: manifests/cluster-network-03-config.yml ファイルをバックアップします。インストールプログラムは、クラスターの作成時に manifests/ ディレクトリーを削除します。