Book Image

Native Docker Clustering with Swarm

By : Fabrizio Soppelsa, Chanwit Kaewkasi
Book Image

Native Docker Clustering with Swarm

By: Fabrizio Soppelsa, Chanwit Kaewkasi

Overview of this book

Docker Swarm serves as one of the crucial components of the Docker ecosystem and offers a native solution for you to orchestrate containers. It’s turning out to be one of the preferred choices for Docker clustering thanks to its recent improvements. This book covers Swarm, Swarm Mode, and SwarmKit. It gives you a guided tour on how Swarm works and how to work with Swarm. It describes how to set up local test installations and then moves to huge distributed infrastructures. You will be shown how Swarm works internally, what’s new in Swarmkit, how to automate big Swarm deployments, and how to configure and operate a Swarm cluster on the public and private cloud. This book will teach you how to meet the challenge of deploying massive production-ready applications and a huge number of containers on Swarm. You'll also cover advanced topics that include volumes, scheduling, a Libnetwork deep dive, security, and platform scalability.
Table of Contents (18 chapters)
Native Docker Clustering with Swarm
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Dedication
Preface

The lab


In this tutorial, we'll create the infrastructure on AWS. Ideally, for a production environment, you would setup three or five Swarm managers and some workers, and eventually add new worker nodes later depending on the load.

Here we'll setup a Swarm cluster with three Swarm managers, six Swarm workers and one Flocker control node with Machine, and won't add new workers.

Installing Flocker requires several manual steps, which can be automated (as we'll see). So, to make the example as less complex as possible, we'll run all these commands initially, in linear order, without repeating procedures to increase the system capacity.

If you don't like Ansible, you can easily adapt the flow to your favorite tool, be it Puppet, Salt, Chef or others.

A unique key

For simplicity, we will install our lab using an SSH key generated ad hoc, and we'll install Docker Machines with this key copied to the host in authorized_keys. The goal is to have a unique key to authenticate Ansible later, that we'll...