Building Container Clusters

Here is the scenario. You have a bunch of Linux servers or VMs that you you want to run applications on. You could start setting up the applications, use a script or a configuration managment tool like Ansible. Here is an alternative worth considering.

Install Flockport on your servers and you can directly deploy apps from the Flockport App store without any setup or configuration. All apps are signed and downloaded securely.

Better the underlying servers don't matter anymore. You can move you container applications complete with state across servers seamlessly in minutes so you are not locked in to any provider or specific server. Specific servers cease to matter.

Get Started

The first step is to get the Flockport installer. The installer supports 4 distributions out of the box, is light weight and doesn't take over your server. Once installed you can provision servers in seconds, connect containers across servers, build overlay networks, distributed storage pools and roll out service discovery, load balancing, HA and more. If you have your own applications you can automate their builds into containers and deploy them.

Provisioning

Once installed you can provision more servers to build a cluster. Just provide the server IP and user and Flockport installs itself on the new server and generates certificates for a secure connection. You can add as many servers as you need and manage all these servers from a single point. Once you have a cluster you can download apps from the app store or build your own with the flockport container build system and deploy and manage them across your servers.

Provision servers

Deploy containers across servers

Networking

The most important part in building a cluster is networking. Containers are usually in a private network on your server and cannot be accessed outside the server. When building a cluster you ideally want containers across servers to be able to ping each other.

Flockport lets you build overlay networks with Vxlan, BGP and Wireguard. If you are building a local cluster and control the router can use simple bridging to ensure all containers across clusters are in the same network as the servers.

Add Vxlan networks

Add BGP networks

Distributed Storage

Distributed storage consolidates storage across servers and makes it available for use to clients. This is useful when multiple apps across the cluster need to share data and also for repliction and redundancy. Flockport lets you build distributed storage pools with Gluster and MFS or just simple shares with NFS.

Add distributed storage pools

Add and use NFS shares clusterwide

Application Deployment

When running clusters its useful to setup reverse proxies and load balancers to serve all your container apps from a single point. For instance you can configure Nginx reverse proxies to serve multiple apps from across the cluster. Or use Nginx or Haproxy to load balance multiple application instances.

Some platforms refer to these as 'ingress controllers' but this kind of vocabulary confuses rather than informs as you need to understand how Nginx and Haproxy work to successfully use them, simply knowing an API wrapper is not going to be enough.

Flockport lets you deploy managed Nginx and Haproxy instances to serve your applications.

Deploy and publish apps on demand

You can also add managed Nginx and Haproxy load balancers

Add Nginx and Haproxy load balancers

Cluster Services

The next step is to explore cluster level services like service discovery and high availability. Flockport uses Consul for service discovery and lets you deploy discovery endpoints across your cluster. You can add services to containers. Containers on startup check for any available service discovery endpoints and publish any configured services to the endpoint. Discovery endpoints can also do heath checks and take unresponsive services offline.

Add Service Discovery

Another cluster level service to explore is high availability or HA. HA ensures application services remain available even on server failure. This is achived by using 2 identical servers and a floating IP. You can configure the server set with a floating IP and HA and point any dependent services to the floating IP. If one server goes down the floating IP moves to the available server so services can continue to be delivered uninterrupted. Flockport automates setting up HA and uses Keepalived under the hood.

Add HA and VIPs

At this point you now have containers deployed across multiple servers that you can manage with ease. You may have setup networks and various services. The great thing about using containers is there is no state on your server. You can simply add new servers and move containers across and rebuild any networks or services required.


RELATED POSTS