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

Swarmkit


Alongside with Swarm Mode, the Docker team at DockerCon16 released Swarmkit, defined as a:

"Toolkit for orchestrating distributed systems at any scale. It includes primitives for node discovery, raft-based consensus, task scheduling, and more."

Swarms clusters are made of active nodes, that can either act as managers or workers.

Managers, that coordinate via Raft (that is, they elect leaders when quorum is available, as described in Chapter 2, Discover the Discovery Services), are responsible for allocating resources, orchestrating services, and dispatching tasks along the cluster. Workers run tasks.

The cluster goal is to execute services, so what's required to be run is defined at high level. For example, a service could be "web". Work units assigned to nodes are instead called tasks. A task allocated for a "web" service could be, for example, a container running the nginx container, and may be named as web.5.

It's very important to notice that we are speaking of services and that...