Compute Services

IBM Cloud Kubernetes Service Deployment Patterns #4: Multi-Zone Cluster, LoadBalancer Aggregating Whole Region Capacity

Share this post:

Deployment Patterns #4: Multi-Zone Cluster, App Exposed via LoadBalancer Aggregating Whole Region Capacity

In my previous post, “IBM Cloud Kubernetes Service: Deployment Patterns for Maximizing Throughput and Availability,” I briefly described a few cluster deployment patterns that should be considered when you are looking to deploy IBM Cloud Kubernetes Service clusters. When choosing the right pattern, you must consider the requirements of the application you are running (including scale), the SLA target, and the budget.

Example deployment pattern

In this article, we are going to go through  steps to deploy an example application with the following deployment pattern:


  1. Sign up and create a multi-zone IBM Cloud Kubernetes Service cluster using the IBM Cloud Console. You can read the documentation on deploying a cluster and specifically how multi-zone clusters work. Important: You have to use the paid tier.
  2. Open a ticket! There is a manual step for this to work, unfortunately. You have to open a ticket on the portal (Technical > Infrastructure > Public Network Question) and add the following to the request:
    “Please set up the network to allow capacity aggregation on the public VLANs associated with my account. {It is even better if you list your public VLANs.} The reference ticket for this request is:
  3. Download and apply the following example Deployment and Service resource yaml, which will expose the echoserver application via the LoadBalancer service on port 1884 in three availability zones you specify in the yaml.
    $ kubectl apply -f iks_multi-zone_cluster_app_via_LoadBalancer_and_aggregate_capacity.yaml
    Note: Do not forget to edit the lines marked with NEED TO EDIT!
  4. Check the IP address of the LoadBalancer service:

Test the app

  1. To test, load the IP:port you specified in your browser or initiate curlcommands (like my example):
    $ curl http://{your IP here}:1884/
  2. You will see a response like the following (run it for each LoadBalancerIP address):

You can see the source IP address in the client_address field because we applied the externalTrafficPolicy: Local in the LoadBalancer Service resource. On the return path, the packets are using their local gateway to leave IBM Cloud.

Finding the right pattern

As you learn more about your workload, you can adjust and even switch between patterns as needed. Different applications will require different patterns; please let us help you decide which is right!

You can learn more about the various deployment patterns in the following posts:

Contact us

If you have questions, engage our team via Slack by registering here and joining the discussion in the #general channel on our public IBM Cloud Kubernetes Service Slack

Chief Architect, Networking – IBM Cloud Kubernetes Service

More Compute Services stories
May 2, 2019

Video – What is a DDoS Attack?

Ryan Sumner, Chief Networking Architect, gives an overview of DDoS attacks and just how the attacker's botnet can affect the target application and its users.

Continue reading

April 25, 2019

What is Object Storage?

In our latest lightboarding video, Anirup Dutta explains how object storage works, lists some of the benefits, and give you some use cases for when object storage may be your best option.

Continue reading

March 28, 2019

VIDEO – Virtualization in 2019

In this video, we’re going to be looking at virtualization from the 10,000-foot view. Even though it is a decades-old technology, it's still vital to understand the basic components of virtualization as it is a core pillar of cloud computing methodology in 2019.

Continue reading