Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

29.2.8. 高可用サービスの設定

以下の例では、ノードのセットに IP フェイルオーバーを指定して可用性の高い router および geo-cache ネットワークサービスをセットアップする方法について説明します。

  1. サービスに使用されるノードにラベルを付けます。の手順は、OpenShift Container Platform クラスターのすべてのノードでサービスを実行し、クラスターのすべてのノード内で固定されない VIP を使用する場合はオプションになります。

    以下の例では、US west の地理的区分でトラフィックを提供するノードのラベルを定義します (ha-svc-nodes=geo-us-west)。

    $ oc label nodes openshift-node-{5,6,7,8,9} "ha-svc-nodes=geo-us-west"
  2. サービスアカウントを作成します。ipfailover を使用したり、(環境ポリシーによって異なる) ルーターを使用する場合は事前に作成された router サービスアカウントか、または新規の ipfailover サービスアカウントのいずれかを再利用できます。

    以下の例は、デフォルト namespace で ipfailover という名前の新規サービスアカウントを作成します。

    $ oc create serviceaccount ipfailover -n default
  3. デフォルト namespace の ipfailover サービスアカウントを privileged SCC に追加します。

    $ oc adm policy add-scc-to-user privileged system:serviceaccount:default:ipfailover
  4. router および geo-cache サービスを起動します。

    重要

    ipfailover は手順 1 のすべてのノードで実行されるため、手順 1 のすべてのノードでルーター/サービスを実行することも推奨されます。

    1. 最初の手順で使用されるラベルに一致するノードでルーターを起動します。以下の例では、ipfailover サービスアカウントを使用して 5 つのインスタンスを実行します。

      $ oc adm router ha-router-us-west --replicas=5 \
          --selector="ha-svc-nodes=geo-us-west" \
          --labels="ha-svc-nodes=geo-us-west" \
          --service-account=ipfailover
    2. 各ノードでレプリカと共に geo-cache サービスを実行します。geo-cache サービスの実行については、設定サンプル を参照してください。

      重要

      ファイルで参照される myimages/geo-cache コンテナーイメージが使用するイメージに置き換えられていることを確認します。レプリカの数を geo-cache ラベルのノード数に変更します。ラベルが最初の手順で使用したものと一致していることを確認します。

      $ oc create -n <namespace> -f ./examples/geo-cache.json
  5. router および geo-cache サービスの ipfailover を設定します。それぞれに独自の VIP があり、いずれも最初の手順の ha-svc-nodes=geo-us-west のラベルが付けられた同じノードを使用します。レプリカの数が最初の手順のラベル設定に一覧表示されているノード数と一致していることを確認してください。

    重要

    routergeo-cache および ipfailover はすべてデプロイメント設定を作成します。 それらの名前はすべて異なっている必要があります。

  6. ipfailover が必要なインスタンスでモニターする必要のある VIP およびポート番号を指定します。

    router の ipfailover コマンド:

    $ oc adm ipfailover ipf-ha-router-us-west \
        --replicas=5 --watch-port=80 \
        --selector="ha-svc-nodes=geo-us-west" \
        --virtual-ips="10.245.2.101-105" \
        --iptables-chain="INPUT" \
        --service-account=ipfailover --create

    以下は、ポート 9736 でリッスンする geo-cache サービスの oc adm ipfailover コマンドです。2 つの ipfailover デプロイメント設定があるため、それぞれの VIP が独自のオフセットを取得できるように --vrrp-id-offset を設定する必要があります。この場合、10 の値を設定すると、ipf-ha-geo-cache が 10 から開始するために ipf-ha-router-us-west には最大 10 の VIP (0-9) を持たせることができることを意味します。

    $ oc adm ipfailover ipf-ha-geo-cache \
        --replicas=5 --watch-port=9736 \
        --selector="ha-svc-nodes=geo-us-west" \
        --virtual-ips=10.245.3.101-105 \
        --vrrp-id-offset=10 \
        --service-account=ipfailover --create

    上記のコマンドでは、各ノードに ipfailoverrouter、および geo-cache Pod があります。各 ipfailover 設定の VIP のセットは重複してなならず、外部またはクラウド環境の別の場所で使用することはできません。それぞれの例の 5 つの VIP 10.245.{2,3}.101-105 は、2 つの ipfailover デプロイメント設定で提供されます。IP フェイルオーバーはどのアドレスがどのノードで提供されるかを動的に選択します。

    管理者は、すべての router VIP が同じ router を参照し、すべての geo-cache VIP が同じ geo-cache サービスを参照することを前提とした上で VIP アドレスを参照する外部 DNS をセットアップします。1 つのノードが実行中である限り、すべての VIP アドレスが提供されます。

29.2.8.1. IP フェイルオーバー Pod のデプロイ

postgresql-ingress サービスの定義に基づいてノードポート 32439 および外部 IP アドレスでリッスンする postgresql をモニターするために ipfailover ルーターをデプロイします。

$ oc adm ipfailover ipf-ha-postgresql \
    --replicas=1 \ 1
    --selector="app-type=postgresql" \ 2
    --virtual-ips=10.9.54.100 \ 3
    --watch-port=32439 \ 4
    --service-account=ipfailover --create
1 1
デプロイするインスタンスの数を指定します。
2
ipfailover がデプロイされる場所を制限します。
3
モニターする仮想 IP アドレスです。
4
各ノード上の ipfailover がモニターするポートです。