2.2. サービスの ExternalIP の設定
クラスター管理者として、クラスター外部の IP アドレスブロックを選択し、クラスター内のサービスにトラフィックを送信することができます。この機能は通常、ベアメタルハードウェアにインストールされているクラスターに最も役立ちます。
サービスに外部 IP アドレスを設定する前に、ネットワークインフラストラクチャーが外部 IP アドレス宛のトラフィックをクラスターにルーティングする必要があります。
2.2.1. ExternalIP について リンクのコピーリンクがクリップボードにコピーされました!
クラウド以外の環境でトラフィックの負荷分散を行うには、ExternalIP 機能を使用して、Service オブジェクトの spec.externalIPs[] パラメーターに外部 IP アドレスを指定します。この設定では、トラフィックをローカルノードにルーティングし、type=NodePort サービスと同様の機能を提供します。
クラウド環境の場合、クラウドの自動デプロイメントのためにロードバランサーサービスを使用し、サービスのエンドポイントをターゲットに設定します。
パラメーターの値を指定すると、OpenShift Container Platform はサービスに追加の仮想 IP アドレスを割り当てます。IP アドレスは、クラスターに定義したサービスネットワークの外部に存在することができます。
ExternalIP はデフォルトで無効になっているため、ExternalIP 機能を有効にすると、外部 IP アドレスへのクラスター内トラフィックがそのサービスに送信されるため、サービスにセキュリティーリスクが生じる可能性があります。この設定は、クラスターユーザーが外部リソース宛ての機密トラフィックをインターセプトできることを意味します。
MetalLB 実装または IP フェイルオーバーデプロイメントのいずれかを使用して、次の方法で ExternalIP リソースをサービスに接続できます。
- 外部 IP の自動割り当て
-
OpenShift Container Platform は、
spec.type=LoadBalancerを設定してServiceオブジェクトを作成する際に、IP アドレスをautoAssignCIDRsCIDR ブロックからspec.externalIPs[]配列に自動的に割り当てます。この設定では、OpenShift Container Platform はロードバランサーサービスタイプのクラウドバージョンを実装し、サービスに IP アドレスを割り当てます。自動割り当てはデフォルトでは無効になっており、クラスター管理者が「ExternalIP の設定」セクションの説明に従い設定する必要があります。 - 外部 IP の手動割り当て
-
OpenShift Container Platform は
Serviceオブジェクトの作成時にspec.externalIPs[]配列に割り当てられた IP アドレスを使用します。別のサービスによってすでに使用されている IP アドレスを指定することはできません。
MetalLB 実装または IP フェイルオーバーデプロイメントのいずれかを使用して外部 IP アドレスブロックをホストした後、外部 IP アドレスブロックがクラスターにルーティングされるようにネットワークインフラストラクチャーを設定する必要があります。この設定は、ノードからのネットワークインターフェイスに IP アドレスが設定されていないことを意味します。トラフィックを処理するには、静的な Address Resolution Protocol (ARP) エントリーなどの方法を使用して、ルーティングと外部 IP へのアクセスを設定する必要があります。
OpenShift Container Platform は以下の機能を追加して Kubernetes の ExternalIP 機能を拡張します。
- 設定可能なポリシーでの、ユーザーによる外部 IP アドレスの使用の制限
- 要求時の外部 IP アドレスのサービスへの自動割り当て