8.8. 自動 Egress IP の有効化
外部プロジェクトトラフィックの静的 IP の有効化 の場合のように、クラスター管理者として、egressIPs
パラメーターを NetNamespace
リソースに設定して egress IP アドレスを namespace に割り当てることができます。単一 IP アドレスのみをプロジェクトに関連付けることができます。
OpenShift SDN をマルチテナントモードで使用する場合、それらに関連付けられたプロジェクトによって別の namespace に参加している namespace と共に egress IP アドレスを使用することはできません。たとえば、project1
および project2
に oc adm pod-network join-projects --to=project1 project2
コマンドを実行して参加している場合、どちらもプロジェクトも egress IP アドレスを使用できません。詳細は、BZ#1645577 を参照してください。
完全に自動化された egress IP により、各ノードの HostSubnet
リソースの egressCIDRs
パラメーターを設定し、ホストできる egress IP アドレスの範囲を示唆することができます。egress IP アドレスを要求した namespace はそれらの egress IP アドレスをホストできるノードに一致し、その後に egress IP アドレスはそれらのノードに割り当てられます。
高可用性は自動的に実行されます。egress IP アドレスをホストしているノードが停止し、HostSubnet
リソースの egressCIDR
値をベースとしてそれらの egress IP アドレスをホストできるノードがある場合、egress IP アドレスは新規ノードに移行します。元の egress IP アドレスノードが再びオンラインに戻ると、ノード間で egress IP アドレスのバランスを図るために egress IP アドレスは自動的に移行します。
手動で割り当てられた egress IP アドレスと自動的に割り当てられた egress IP アドレスの両方を同じノードで使用したり、同じ IP アドレス範囲で使用したりすることはできません。
NetNamespace
を egress IP アドレスで更新します。$ oc patch netnamespace <project_name> -p '{"egressIPs": ["<IP_address>"]}'
egressIPs
パラメーターに指定できる IP アドレスは 1 つだけです。複数の IP アドレスの使用はサポートされていません。たとえば、
project1
を IP アドレスの 192.168.1.100 に、project2
を IP アドレスの 192.168.1.101 に割り当てるには、以下を実行します。$ oc patch netnamespace project1 -p '{"egressIPs": ["192.168.1.100"]}' $ oc patch netnamespace project2 -p '{"egressIPs": ["192.168.1.101"]}''
egressCIDRs
フィールドを設定して、egress IP アドレスをホストできるノードを示します。$ oc patch hostsubnet <node_name> -p \ '{"egressCIDRs": ["<IP_address_range_1>", "<IP_address_range_2>"]}'
たとえば、
node1
およびnode2
を、192.168.1.0 から 192.168.1.255 の範囲で egress IP アドレスをホストするように設定するには、以下を実行します。$ oc patch hostsubnet node1 -p '{"egressCIDRs": ["192.168.1.0/24"]}' $ oc patch hostsubnet node2 -p '{"egressCIDRs": ["192.168.1.0/24"]}'
-
OpenShift Container Platform は、バランスを取りながら特定の egress IP アドレスを利用可能なノードに自動的に割り当てます。この場合、egress IP アドレス 192.168.1.100 を
node1
に、egress IP アドレス 192.168.1.101 をnode2
に割り当て、その逆も行います。