9.8. kube-proxy の設定

Kubernetes メットワークプロキシー (kube-proxy) は各ノードで実行され、Cluster Network Operator (CNO) で管理されます。kube-proxy は、サービスに関連付けられたエンドポイントの接続を転送するためのネットワークルールを維持します。

9.8.1. iptables ルールの同期について

同期の期間は、Kubernetes ネットワークプロキシー (kube-proxy) がノードで iptables ルールを同期する頻度を定めます。

同期は、以下のイベントのいずれかが生じる場合に開始します。

  • サービスまたはエンドポイントのクラスターへの追加、またはクラスターからの削除などのイベントが発生する。
  • 最後の同期以後の時間が kube-proxy に定義される同期期間を超過している。

9.8.2. kube-proxy 設定パラメーター

以下の kubeProxyConfig パラメーターを変更することができます。

重要

OpenShift Container Platform 4.3 以降で強化されたパフォーマンスの向上により、iptablesSyncPeriod パラメーターを調整する必要はなくなりました。

表9.1 パラメーター

パラメーター説明デフォルト

iptablesSyncPeriod

iptables ルールの更新期間。

30s または 2m などの期間。有効なサフィックスには、sm、および h などが含まれ、これらについては、Go Package time ドキュメントで説明されています。

30s

proxyArguments.iptables-min-sync-period

iptables ルールを更新する前の最小期間。このパラメーターにより、更新の頻度が高くなり過ぎないようにできます。デフォルトでは、iptables ルールに影響する変更が生じるとすぐに、更新が開始されます。

30s または 2m などの期間。有効なサフィックスには、sm、および h が含まれ、これらについては、Go Package time で説明されています。

0s

9.8.3. kube-proxy 設定の変化

クラスターの Kubernetes ネットワークプロキシー設定を変更することができます。

前提条件

  • OpenShift CLI (oc) のインストール。
  • cluster-admin ロールで実行中のクラスターにログインします。

手順

  1. 以下のコマンドを実行して、Network.operator.openshift.io カスタムリソース (CR) を編集します。

    $ oc edit network.operator.openshift.io cluster
  2. 以下のサンプル CR のように、kube-proxy 設定への変更内容で、CR のkubeProxyConfig パラメーターを変更します。

    apiVersion: operator.openshift.io/v1
    kind: Network
    metadata:
      name: cluster
    spec:
      kubeProxyConfig:
        iptablesSyncPeriod: 30s
        proxyArguments:
          iptables-min-sync-period: ["30s"]
  3. ファイルを保存し、テキストエディターを編集します。

    構文は、ファイルを保存し、エディターを終了する際に oc コマンドによって検証されます。変更内容に構文エラーが含まれる場合、エディターはファイルを開き、エラーメッセージを表示します。

  4. 以下のコマンドを実行して、設定の更新を確認します。

    $ oc get networks.operator.openshift.io -o yaml

    出力例

    apiVersion: v1
    items:
    - apiVersion: operator.openshift.io/v1
      kind: Network
      metadata:
        name: cluster
      spec:
        clusterNetwork:
        - cidr: 10.128.0.0/14
          hostPrefix: 23
        defaultNetwork:
          type: OpenShiftSDN
        kubeProxyConfig:
          iptablesSyncPeriod: 30s
          proxyArguments:
            iptables-min-sync-period:
            - 30s
        serviceNetwork:
        - 172.30.0.0/16
      status: {}
    kind: List

  5. オプション: 以下のコマンドを実行し、Cluster Network Operator が設定変更を受け入れていることを確認します。

    $ oc get clusteroperator network

    出力例

    NAME      VERSION     AVAILABLE   PROGRESSING   DEGRADED   SINCE
    network   4.1.0-0.9   True        False         False      1m

    設定の更新が正常に適用されると、AVAILABLE フィールドが True になります。