Compute Services

IBM Cloud Kubernetes Service Deployment Patterns #3: Multi-Zone Cluster, LoadBalancer with In-Zone Backends Only

Share this post:

Deployment Patterns #3: Multi-Zone Cluster, App exposed via LoadBalancer Using In-Zone Backends Only

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

Let’s go through the steps to deploy an example application with the following deployment pattern below:


  1. Sign up and create a multi-zone IKS cluster using the IBM Cloud Console. Consult the documentation on deploying a cluster and specifically how multi-zone clusters work. Important: You have to use the paid tier.
  2. Download and apply the 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_using_local_endpoints_only.yaml
    Note: Do not forget to edit the lines marked with NEED TO EDIT!
  3. 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 should see a response like this (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.

Chief Architect, Networking – IBM Cloud Kubernetes Service

More Compute Services stories
April 18, 2019

Bring Your Own ALB: DNS with Health Checks and SSL Certificates (Beta)

If you've ever wanted to run a web server, an API gateway, an Ingress controller, a Kafka proxy, a service that has a binary protocol like an MQTT service or database, or essentially anything that runs on TCP (or UDP), you can now run it in IBM Cloud Kubernetes Service on a host name.

Continue reading

April 17, 2019

Container Orchestration Explained

In the past, we've talked about containerization technology and dove into Kubernetes as an orchestration platform, but we're going to take a step back to look at why container orchestration is necessary and the benefits it brings to both developers and operations teams.

Continue reading

April 9, 2019

Improve Your Application Insights Using Log Analysis with LogDNA

IBM Log Analysis with LogDNA has a solution for multi-tenant services running on IBM Cloud. Starting now, platform service logs from your IBM Cloud multi-tenant services will be appearing in your provisioned LogDNA instances.

Continue reading