Add server group for cluster worker nodes
Now Magnums onlys has one server group for all master and worker nodes per cluster, which is not very flexible for small cloud scale. For a 3+ master clusters, it's easily meeting the capacity when using hard anti-affinity policy. This patch is proposing one server group for each master and worker nodes group to have better flexibility. story: 2004195 Change-Id: If11ba863a2aa538efe1e3e850084bdd33afd27d2
This commit is contained in:
parent
055384343f
commit
4f84c849f6
@ -605,11 +605,16 @@ resources:
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# resources that expose the server group for all nodes include master
|
||||
# and minions.
|
||||
# resources that expose one server group for each master and worker nodes
|
||||
# separately.
|
||||
#
|
||||
|
||||
nodes_server_group:
|
||||
master_nodes_server_group:
|
||||
type: OS::Nova::ServerGroup
|
||||
properties:
|
||||
policies: [{get_param: nodes_affinity_policy}]
|
||||
|
||||
worker_nodes_server_group:
|
||||
type: OS::Nova::ServerGroup
|
||||
properties:
|
||||
policies: [{get_param: nodes_affinity_policy}]
|
||||
@ -690,7 +695,7 @@ resources:
|
||||
dns_service_ip: {get_param: dns_service_ip}
|
||||
dns_cluster_domain: {get_param: dns_cluster_domain}
|
||||
openstack_ca: {get_param: openstack_ca_coreos}
|
||||
nodes_server_group_id: {get_resource: nodes_server_group}
|
||||
nodes_server_group_id: {get_resource: master_nodes_server_group}
|
||||
availability_zone: {get_param: availability_zone}
|
||||
ca_key: {get_param: ca_key}
|
||||
cert_manager_api: {get_param: cert_manager_api}
|
||||
@ -778,7 +783,7 @@ resources:
|
||||
dns_service_ip: {get_param: dns_service_ip}
|
||||
dns_cluster_domain: {get_param: dns_cluster_domain}
|
||||
openstack_ca: {get_param: openstack_ca_coreos}
|
||||
nodes_server_group_id: {get_resource: nodes_server_group}
|
||||
nodes_server_group_id: {get_resource: worker_nodes_server_group}
|
||||
availability_zone: {get_param: availability_zone}
|
||||
pods_network_cidr: {get_param: pods_network_cidr}
|
||||
kubelet_options: {get_param: kubelet_options}
|
||||
|
@ -675,11 +675,16 @@ resources:
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# resources that expose the server group for all nodes include master
|
||||
# and minions.
|
||||
# resources that expose one server group for each master and worker nodes
|
||||
# separately.
|
||||
#
|
||||
|
||||
nodes_server_group:
|
||||
master_nodes_server_group:
|
||||
type: OS::Nova::ServerGroup
|
||||
properties:
|
||||
policies: [{get_param: nodes_affinity_policy}]
|
||||
|
||||
worker_nodes_server_group:
|
||||
type: OS::Nova::ServerGroup
|
||||
properties:
|
||||
policies: [{get_param: nodes_affinity_policy}]
|
||||
@ -762,7 +767,7 @@ resources:
|
||||
dns_service_ip: {get_param: dns_service_ip}
|
||||
dns_cluster_domain: {get_param: dns_cluster_domain}
|
||||
openstack_ca: {get_param: openstack_ca}
|
||||
nodes_server_group_id: {get_resource: nodes_server_group}
|
||||
nodes_server_group_id: {get_resource: master_nodes_server_group}
|
||||
availability_zone: {get_param: availability_zone}
|
||||
ca_key: {get_param: ca_key}
|
||||
cert_manager_api: {get_param: cert_manager_api}
|
||||
@ -904,7 +909,7 @@ resources:
|
||||
dns_service_ip: {get_param: dns_service_ip}
|
||||
dns_cluster_domain: {get_param: dns_cluster_domain}
|
||||
openstack_ca: {get_param: openstack_ca}
|
||||
nodes_server_group_id: {get_resource: nodes_server_group}
|
||||
nodes_server_group_id: {get_resource: worker_nodes_server_group}
|
||||
availability_zone: {get_param: availability_zone}
|
||||
pods_network_cidr: {get_param: pods_network_cidr}
|
||||
kubelet_options: {get_param: kubelet_options}
|
||||
|
@ -468,11 +468,16 @@ resources:
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# resources that expose the server group for all nodes include master
|
||||
# and minions.
|
||||
# resources that expose one server group for each master and worker nodes
|
||||
# separately.
|
||||
#
|
||||
|
||||
nodes_server_group:
|
||||
master_nodes_server_group:
|
||||
type: OS::Nova::ServerGroup
|
||||
properties:
|
||||
policies: [{get_param: nodes_affinity_policy}]
|
||||
|
||||
worker_nodes_server_group:
|
||||
type: OS::Nova::ServerGroup
|
||||
properties:
|
||||
policies: [{get_param: nodes_affinity_policy}]
|
||||
@ -544,7 +549,7 @@ resources:
|
||||
wc_curl_cli: {get_attr: [master_wait_handle, curl_cli]}
|
||||
etcd_lb_vip: {get_attr: [etcd_lb, address]}
|
||||
openstack_ca: {get_param: openstack_ca}
|
||||
nodes_server_group_id: {get_resource: nodes_server_group}
|
||||
nodes_server_group_id: {get_resource: master_nodes_server_group}
|
||||
octavia_enabled: {get_param: octavia_enabled}
|
||||
|
||||
######################################################################
|
||||
@ -589,7 +594,7 @@ resources:
|
||||
flannel_network_cidr: {get_param: flannel_network_cidr}
|
||||
external_network: {get_param: external_network}
|
||||
kube_software_configs: {get_attr: [kubeminion_software_configs, kube_minion_init]}
|
||||
nodes_server_group_id: {get_resource: nodes_server_group}
|
||||
nodes_server_group_id: {get_resource: worker_nodes_server_group}
|
||||
|
||||
######################################################################
|
||||
#
|
||||
|
@ -380,11 +380,16 @@ resources:
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# resources that expose the server group for all nodes include master
|
||||
# and minions.
|
||||
# resources that expose one server group for each master and worker nodes
|
||||
# separately.
|
||||
#
|
||||
|
||||
nodes_server_group:
|
||||
master_nodes_server_group:
|
||||
type: OS::Nova::ServerGroup
|
||||
properties:
|
||||
policies: [{get_param: nodes_affinity_policy}]
|
||||
|
||||
worker_nodes_server_group:
|
||||
type: OS::Nova::ServerGroup
|
||||
properties:
|
||||
policies: [{get_param: nodes_affinity_policy}]
|
||||
@ -417,7 +422,7 @@ resources:
|
||||
secgroup_mesos_id: {get_resource: secgroup_master}
|
||||
api_pool_id: {get_attr: [api_lb, pool_id]}
|
||||
openstack_ca: {get_param: openstack_ca}
|
||||
nodes_server_group_id: {get_resource: nodes_server_group}
|
||||
nodes_server_group_id: {get_resource: master_nodes_server_group}
|
||||
|
||||
######################################################################
|
||||
#
|
||||
@ -447,7 +452,7 @@ resources:
|
||||
external_network: {get_param: external_network}
|
||||
secgroup_slave_all_open_id: {get_resource: secgroup_slave_all_open}
|
||||
mesos_slave_software_configs: {get_attr: [mesos_slave_software_configs, mesos_init]}
|
||||
nodes_server_group_id: {get_resource: nodes_server_group}
|
||||
nodes_server_group_id: {get_resource: worker_nodes_server_group}
|
||||
|
||||
######################################################################
|
||||
#
|
||||
|
@ -346,23 +346,28 @@ resources:
|
||||
master_public_ip: {get_attr: [swarm_masters, resource.0.swarm_master_external_ip]}
|
||||
master_private_ip: {get_attr: [swarm_masters, resource.0.swarm_master_ip]}
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# resources that expose the server group for all nodes include master
|
||||
# and minions.
|
||||
#
|
||||
|
||||
nodes_server_group:
|
||||
type: OS::Nova::ServerGroup
|
||||
properties:
|
||||
policies: [{get_param: nodes_affinity_policy}]
|
||||
|
||||
etcd_address_lb_switch:
|
||||
type: Magnum::ApiGatewaySwitcher
|
||||
properties:
|
||||
pool_private_ip: {get_attr: [etcd_lb, address]}
|
||||
master_private_ip: {get_attr: [swarm_masters, resource.0.swarm_master_ip]}
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# resources that expose one server group for each master and worker nodes
|
||||
# separately.
|
||||
#
|
||||
|
||||
master_nodes_server_group:
|
||||
type: OS::Nova::ServerGroup
|
||||
properties:
|
||||
policies: [{get_param: nodes_affinity_policy}]
|
||||
|
||||
worker_nodes_server_group:
|
||||
type: OS::Nova::ServerGroup
|
||||
properties:
|
||||
policies: [{get_param: nodes_affinity_policy}]
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# Swarm manager is responsible for the entire cluster and manages the
|
||||
@ -420,7 +425,7 @@ resources:
|
||||
volume_driver: {get_param: volume_driver}
|
||||
rexray_preempt: {get_param: rexray_preempt}
|
||||
openstack_ca: {get_param: openstack_ca}
|
||||
nodes_server_group_id: {get_resource: nodes_server_group}
|
||||
nodes_server_group_id: {get_resource: master_nodes_server_group}
|
||||
|
||||
swarm_nodes:
|
||||
type: "OS::Heat::ResourceGroup"
|
||||
@ -473,7 +478,7 @@ resources:
|
||||
volume_driver: {get_param: volume_driver}
|
||||
rexray_preempt: {get_param: rexray_preempt}
|
||||
openstack_ca: {get_param: openstack_ca}
|
||||
nodes_server_group_id: {get_resource: nodes_server_group}
|
||||
nodes_server_group_id: {get_resource: worker_nodes_server_group}
|
||||
|
||||
outputs:
|
||||
|
||||
|
@ -292,11 +292,16 @@ resources:
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# resources that expose the server group for all nodes include master
|
||||
# and minions.
|
||||
# resources that expose one server group for each master and worker nodes
|
||||
# separately.
|
||||
#
|
||||
|
||||
nodes_server_group:
|
||||
master_nodes_server_group:
|
||||
type: OS::Nova::ServerGroup
|
||||
properties:
|
||||
policies: [{get_param: nodes_affinity_policy}]
|
||||
|
||||
worker_nodes_server_group:
|
||||
type: OS::Nova::ServerGroup
|
||||
properties:
|
||||
policies: [{get_param: nodes_affinity_policy}]
|
||||
@ -350,7 +355,7 @@ resources:
|
||||
rexray_preempt: {get_param: rexray_preempt}
|
||||
verify_ca: {get_param: verify_ca}
|
||||
openstack_ca: {get_param: openstack_ca}
|
||||
nodes_server_group_id: {get_resource: nodes_server_group}
|
||||
nodes_server_group_id: {get_resource: master_nodes_server_group}
|
||||
availability_zone: {get_param: availability_zone}
|
||||
|
||||
swarm_secondary_masters:
|
||||
@ -395,7 +400,7 @@ resources:
|
||||
rexray_preempt: {get_param: rexray_preempt}
|
||||
verify_ca: {get_param: verify_ca}
|
||||
openstack_ca: {get_param: openstack_ca}
|
||||
nodes_server_group_id: {get_resource: nodes_server_group}
|
||||
nodes_server_group_id: {get_resource: worker_nodes_server_group}
|
||||
availability_zone: {get_param: availability_zone}
|
||||
|
||||
swarm_nodes:
|
||||
|
@ -0,0 +1,9 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
Magnums onlys has one server group for all master and worker nodes
|
||||
per cluster, which is not very flexible for small cloud scale. For a
|
||||
3+ master clusters, it's easily meeting the capacity when using hard
|
||||
anti-affinity policy. Now one server group is added for each
|
||||
master and worker nodes group to have better flexibility.
|
||||
|
Loading…
Reference in New Issue
Block a user