How-tos

IBM Containers: Availability Zones

Share this post:

As of May 23rd IBM Bluemix Container Service now provides a native Kubernetes operations experience while removing the burden of maintaining master nodes. Kubernetes itself is based on the Docker engine for managing software images and instantiating containers. Get the details.

IBM Containers offers a great way to quickly improve the availability of your app that is running in a container group. Building upon the enhanced availability offered by anti-affinity, container groups can now be run across multiple availability zones in the US-South and London regions.

Why use availability zones?

Availability zones allow apps to be run and load balanced across multiple cloud environments of the same IBM Containers region. While the availability zones will share the same API and UI front-end, behind the scenes they are set up as separate full instances of the IBM Containers architecture with separate network and power connections. For the US-South region, both availability zones are located in Dallas. The London region offers availability zones in London and Amsterdam.

In much the same way anti-affinity provides protection from a single physical compute node failure, availability zones protect against a whole cloud failure. By running container groups in two availability zones, your application will remain reachable if one group, or even a whole availability zone becomes completely unreachable. The router will load balance between all available container groups, regardless of which availability zones these groups are running in.

How to use availability zones?

Paid accounts can use multiple availability zones and create highly available containers with global load balancing for their app. Free-trial accounts must upgrade to a paid account to use this feature.

To view the availability zone for your current space, run cf ic info and look for the Availability Zone field. If you want to create containers in a different availability zone, you must run cf create-space <space-name> to create a new space. Once you target the new space, you will use the cf ic reprovision command to provision the space in the new availability zone.
You can also change the availability zone for an existing space, but make sure to back up your containers. Containers and container groups are not migrated to the new availability zone and will be removed during the migration process. Images and volumes are not affected. After your space is reprovisioned, you can start creating your containers in the new availability zone.

For more information about creating highly available container groups across multiple availability zones, see Running highly available container groups in different spaces in the same organization.

More How-tos Stories

Expose Auth0-enabled OpenWhisk actions with API Connect

Serverless computing platforms give developers a rapid way to build APIs without servers. OpenWhisk supports automatic generation of REST API for actions exposed by API Gateway. When the capabilities provided by the API Gateway do not cover all usecases you have for an API - such as publishing it in a developer portal or performing advanced mapping, transformation, validation, you can migrate to the API Connect service.

Continue reading

Spring Cloud application with Zuul Gateway on Bluemix Kubernetes

In this post, we'll create a simple Spring Cloud application that demonstrates the Zuul library. Zuul acts as a gateway to other microservices, and provides routing and filtering functionality, among other things. We will build on a project from the Spring guides, and deploy it to Bluemix Kubernetes.

Continue reading

Connecting a Spring Cloud application to Cloudant Service with Feign and Hystrix

In this post, we'll create a simple Spring Cloud application that demonstrates the capabilities of Feign and Hystrix by connecting to a Cloudant service on Bluemix. Feign is a declarative web service client, which comes with Hystrix built in when you use it with Spring Cloud. Hystrix is a Netflix OSS library that implements the circuit breaker pattern.

Continue reading