15.5.2. ExternalIP のサービスへの割り当て

ExternalIP をサービスに割り当てることができます。クラスターが ExternalIP を自動的に割り当てするように設定されている場合、ExternalIP をサービスに手動で割り当てる必要がない場合があります。

手順

  1. オプション: ExternalIP で使用するために設定される IP アドレス範囲を確認するには、以下のコマンドを入力します。

    $ oc get networks.config cluster -o jsonpath='{.spec.externalIP}{"\n"}'

    autoAssignCIDRs が設定されている場合、spec.externalIPs フィールドが指定されていない場合、 OpenShift Container Platform は ExternalIP を新規 Service オブジェクトに自動的に割り当てます。

  2. ExternalIP をサービスに割り当てます。

    1. 新規サービスを作成する場合は、spec.externalIPs フィールドを指定し、1 つ以上の有効な IP アドレスの配列を指定します。以下は例になります。

      apiVersion: v1
      kind: Service
      metadata:
        name: svc-with-externalip
      spec:
        ...
        externalIPs:
        - 192.174.120.10
    2. ExternalIP を既存のサービスに割り当てる場合は、以下のコマンドを入力します。<name> をサービス名に置き換えます。<ip_address> を有効な ExternalIP アドレスに置き換えます。コンマで区切られた複数の IP アドレスを指定できます。

      $ oc patch svc <name> -p \
        '{
          "spec": {
            "externalIPs": [ "<ip_address>" ]
          }
        }'

      以下は例になります。

      $ oc patch svc mysql-55-rhel7 -p '{"spec":{"externalIPs":["192.174.120.10"]}}'

      出力例

      "mysql-55-rhel7" patched

  3. ExternalIP アドレスがサービスに割り当てられていることを確認するには、以下のコマンドを入力します。新規サービスに ExternalIP を指定した場合、まずサービスを作成する必要があります。

    $ oc get svc

    出力例

    NAME               CLUSTER-IP      EXTERNAL-IP     PORT(S)    AGE
    mysql-55-rhel7     172.30.131.89   192.174.120.10  3306/TCP   13m