Container management tools and container orchestration tools are not mutually exclusive.
While both solutions solve the problem of managing environments in a consistent and automated way, they approach the problem in different ways.
Configuration management tools operate on systems to bring them to a desired state.
DevOps teams define the final state of their infrastructure and applications, and tools like Puppet, Chef and Ansible enforce this state. Meanwhile, container orchestration tools like Docker Swarm and Kubernetes abstract away the infrastructure entirely, letting DevOps teams deploy applications without worrying about infrastructure state or configuration.
Both approaches can be used to deploy applications, but configuration management tools emphasize infrastructure management.
With this in mind, configuration management tools and Kubernetes can—and often do—work together in the same environment.
Deploying and maintaining a Kubernetes cluster is challenging, regardless of whether the cluster is running on-premise or on the cloud.
Using a configuration management solution lets DevOps teams hand off this responsibility to an automated process and focus instead on deploying applications.