Table of Contents
Native Docker Clustering with Swarm
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Why subscribe?
Dedication
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Errata
Piracy
Questions
1. Welcome to Docker Swarm
Clustering tools and container managers
Swarm goals
Why use Swarm
Real world use case examples
Pet versus cattle models
Swarm features
Similar projects
Kubernetes
CoreOS Fleet
Apache Mesos
Kubernetes versus Fleet versus Mesos
Swarm versus all
The Swarm v1 architecture
Terminology
Getting started with Swarm
Docker for Mac
Docker for Windows
Getting ready with Linux
Check that Docker Machine is available - all systems
Swarm, yesterday
Boot2Docker
Create 4 cluster nodes with Docker Machine
Configuring the Docker hosts
Starting Docker Swarm
Test your Swarm cluster
Swarm, today
Summary
2. Discover the Discovery Services
A discovery service
Token
Re-architecting the example of Chapter 1 with token
Token limitations
Raft
Raft theory
Raft in practice
Etcd
Re architecting the example of Chapter 1 with Etcd
ZooKeeper
Consul
Re architecting the example of Chapter 1 with Consul
Towards a decentralized discovery service
Summary
3. Meeting Docker Swarm Mode
Swarmkit
Versions and support
Swarmkit architecture
How a manager chooses the best node for a task
The heart of SwarmKit: swarmd
The controller of SwarmKit: swarmctl
Provisioning a SwarmKit cluster with Ansible
Creating a service on SwarmKit
Swarm mode
Old versus new Swarm versus SwarmKit
Swarm Mode zoom in
Integration into the engine
docker swarm command
docker node
docker service
Docker Stack
Etcd's Raft is integrated already
Load balancing and DNS
Promotion and demotion
Replicas and scale
Services and tasks
docker service scale
Summary
4. Creating a Production-Grade Swarm
Tools
An HA Topology for Swarm2k
Managers specifications
In case of Raft recovery
Raft files
Running tasks
Manager topologies
Provisioning the infrastructure with belt
Securing Managers with Docker Machine
Understanding some Swarm internals
Joining workers
Upgrading Managers
Live Upgrading the Managers
Monitoring Swarm2k
InfluxDB Time-Series Database
Telegraf Swarm plugin
Swarm3k
Swarm3k Setup and Workload
Swarm performance at a scale
Swarm2k and Swarm3k lessons learned
Summary
5. Administer a Swarm Cluster
Docker Swarm standalone
Docker Swarm Mode
Manually adding nodes
Managers
Workers number
Scripted nodes addition
Belt
Use Ansible
Cluster management
Nodes operations
Demotion and promotion
Tagging nodes
Remove nodes
Remove workers
Remove managers
Swarm health
Backing up the cluster configuration
Disaster recovery
Graphical interfaces for Swarm
Shipyard
Portainer
Summary
6. Deploy Real Applications on Swarm
Microservices
Deploy a replicated nginx
A minimal Swarm