2.8.5.2. 機能拡張
- 今回の機能拡張により、OpenShift-on-OpenStack Playbook の実行は、Kuryr SDN の使用時にパブリックネット ID が設定されていないと前提条件のチェックで失敗しなくなりました。(BZ#1579414)
OpenStack クラウドプロビジョニングのフローティング IP アドレスの割り当てを制御できるようになりました。OpenStack 仮想サーバーを作成する Playbook は常にフローティング IP を各仮想マシン (各 OpenShift ノード) に関連付けます。これにより、2 つの負の影響が及びます。
- OpenShift クラスターのサイズが OpenStack ユーザーが利用できるフローティング IP の数によって制限されます。
すべての OpenShift ノードは外部から直接アクセス可能であることにより、潜在的な攻撃面が拡大します。
フローティング IP を取得するノードおよびこれらを取得しないノードに対するロールベースの制御が新たに導入されました。これは、以下のインベントリー変数によって制御されます。
-
openshift_openstack_master_floating_ip
-
openshift_openstack_infra_floating_ip
-
openshift_openstack_compute_floating_ip
openshift_openstack_load_balancer_floating_ip
上記はすべてのブール値であり、すべてはデフォルトの
true
に設定されます。これにより、以下のようなユースケースが可能になります。- すべてのマスターおよびインフラストラクチャーノードにフローティング IP があるが、コンピュートノードにはないクラスター。
いずれのノードにもフローティング IP がないが、ロードバランサーにはあるクラスター (OpenShift はロードバランサー経由で使用されるが、いずれのノードにも直接アクセスできない)。
(
openshift_openstack_compute_floating_ip = false
を設定することで) フローティング IP を持たない一部のノードがある場合、openshift-ansible Playbook はノードのネットワーク内で実行する必要があります。これは、フローティング IP のないサーバーはそれが置かれているネットワークからのみアクセス可能であるためです。これを実行するための一般的な方法として、ノードネットワークおよびサブネットを事前に作成し、その中に bastion ホストを作成し、そこで Ansible を実行することができます。$ openstack network create openshift $ openstack subnet create --subnet-range 192.168.0.0/24 --dns-nameserver 10.20.30.40 --network openshift openshift $ openstack router create openshift-router $ openstack router set --external-gateway public openshift-router $ openstack router add subnet openshift-router openshift $ openstack server create --wait --image RHEL7 --flavor m1.medium --key-name openshift --network openshift bastion $ openstack floating ip create public $ openstack server add floating ip bastion 172.24.4.10 $ ping 172.24.4.10 $ ssh cloud-user@172.24.4.10
次に、openshift-ansible をインストールし、以下をインベントリー (inventory/group_vars/all.yml) に追加します。
openshift_openstack_node_network_name: openshift openshift_openstack_router_name: openshift-router openshift_openstack_node_subnet_name: openshift openshift_openstack_master_floating_ip: false openshift_openstack_infra_floating_ip: false openshift_openstack_compute_floating_ip: false openshift_openstack_load_balancer_floating_ip: false