Browse Source

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
changes/25/613825/4
Feilong Wang 3 years ago
parent
commit
4f84c849f6
  1. 15
      magnum/drivers/k8s_coreos_v1/templates/kubecluster.yaml
  2. 15
      magnum/drivers/k8s_fedora_atomic_v1/templates/kubecluster.yaml
  3. 15
      magnum/drivers/k8s_fedora_ironic_v1/templates/kubecluster.yaml
  4. 15
      magnum/drivers/mesos_ubuntu_v1/templates/mesoscluster.yaml
  5. 23
      magnum/drivers/swarm_fedora_atomic_v1/templates/cluster.yaml
  6. 15
      magnum/drivers/swarm_fedora_atomic_v2/templates/swarmcluster.yaml
  7. 9
      releasenotes/notes/server-groups-for-both-master-and-workder-bdd491e4323955d4.yaml

15
magnum/drivers/k8s_coreos_v1/templates/kubecluster.yaml

@ -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}

15
magnum/drivers/k8s_fedora_atomic_v1/templates/kubecluster.yaml

@ -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}

15
magnum/drivers/k8s_fedora_ironic_v1/templates/kubecluster.yaml

@ -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}
######################################################################
#

15
magnum/drivers/mesos_ubuntu_v1/templates/mesoscluster.yaml

@ -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}
######################################################################
#

23
magnum/drivers/swarm_fedora_atomic_v1/templates/cluster.yaml

@ -346,22 +346,27 @@ 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]}
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 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}]
etcd_address_lb_switch:
type: Magnum::ApiGatewaySwitcher
worker_nodes_server_group:
type: OS::Nova::ServerGroup
properties:
pool_private_ip: {get_attr: [etcd_lb, address]}
master_private_ip: {get_attr: [swarm_masters, resource.0.swarm_master_ip]}
policies: [{get_param: nodes_affinity_policy}]
######################################################################
#
@ -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:

15
magnum/drivers/swarm_fedora_atomic_v2/templates/swarmcluster.yaml

@ -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:

9
releasenotes/notes/server-groups-for-both-master-and-workder-bdd491e4323955d4.yaml

@ -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…
Cancel
Save