29.2.8. 高可用サービスの設定
以下の例では、ノードのセットに IP フェイルオーバーを指定して可用性の高い router および geo-cache ネットワークサービスをセットアップする方法について説明します。
サービスに使用されるノードにラベルを付けます。の手順は、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"
サービスアカウントを作成します。ipfailover を使用したり、(環境ポリシーによって異なる) ルーターを使用する場合は事前に作成された router サービスアカウントか、または新規の ipfailover サービスアカウントのいずれかを再利用できます。
以下の例は、デフォルト namespace で ipfailover という名前の新規サービスアカウントを作成します。
$ oc create serviceaccount ipfailover -n default
デフォルト namespace の ipfailover サービスアカウントを privileged SCC に追加します。
$ oc adm policy add-scc-to-user privileged system:serviceaccount:default:ipfailover
router および geo-cache サービスを起動します。
重要ipfailover は手順 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
各ノードでレプリカと共に geo-cache サービスを実行します。geo-cache サービスの実行については、設定サンプル を参照してください。
重要ファイルで参照される myimages/geo-cache コンテナーイメージが使用するイメージに置き換えられていることを確認します。レプリカの数を geo-cache ラベルのノード数に変更します。ラベルが最初の手順で使用したものと一致していることを確認します。
$ oc create -n <namespace> -f ./examples/geo-cache.json
router および geo-cache サービスの ipfailover を設定します。それぞれに独自の VIP があり、いずれも最初の手順の ha-svc-nodes=geo-us-west のラベルが付けられた同じノードを使用します。レプリカの数が最初の手順のラベル設定に一覧表示されているノード数と一致していることを確認してください。
重要router、geo-cache および ipfailover はすべてデプロイメント設定を作成します。 それらの名前はすべて異なっている必要があります。
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
上記のコマンドでは、各ノードに ipfailover、router、および 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 ルーターをデプロイします。