2.8.5.2. 增强
- 此增强确保了 OpenShift-on-OpenStack playbook 执行在检查使用 Kuryr SDN 时没有配置公共网络 ID 的先决条件会失败。(BZ#1579414)
现在,您可以控制 OpenStack 云置备的浮动 IP 地址的分配。负责创建 OpenStack 虚拟服务器的 playbook 始终会将浮动 IP 地址与每个虚拟机(每个 OpenShift 节点)关联。这会产生两个负面影响:
- 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
。这适用的用例如:- 在一个集群中,所有 master 和 infra 节点都有浮动 IP,但计算节点没有。
在一个集群中,如果没有节点具有浮动 IP,但负载均衡器有(因此 OpenShift 可通过负载均衡器使用,但任何节点都无法直接访问)。
如果某些节点没有浮动 IP(通过设置
openshift_openstack_compute_floating_ip = false
), 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