Automate IT and infrastructure, manage complex workflows, and mitigate risk at scale.
Try the full-featured Puppet Enterprise for free on 10 nodes.
Find and prevent compliance failures
Continuous Delivery for Puppet Enterprise
Build, test, and deploy infrastructure as code faster and easier
Compliance Enforcement Modules
Remediate to stay in compliance
Content & Modules
Pre-built scripts to automate common tasks
Get Puppet Enterprise
First 10 nodes are free!
Try it now
Request a demo
Find thousands of component modules built by the community and guidance on using them in your own infrastructure.
Visit Puppet Forge >>
Open Source PuppetPerfect for individuals and small infrastructure
BoltAutomate tasks in orchestration workflows
See all open source projects >>
Contribute to open source projects >>
Containerization has immense potential for development, particularly in cloud environments. The benefits of virtualizing a portable computing environment are attractive for any organization to make their DevOps approach faster and more flexible.
This blog provides a quick overview of how Puppet and Kubernetes work and how to use the Puppet Kubernetes module to install, bootstrap, and configure Kubernetes using Puppet.
Table of Contents:
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications (containers that make up an application are grouped into logical units). Puppet's configuration management capabilities can be used to solve several problems within Kubernetes, including identification, control, status accounting and verification, and audit.
The Kubernetes module for Puppet is used to install and configure Kubernetes. Puppet is a certified Kubernetes installer by the Cloud Native Computing Foundation.
The module installs and configures Kubernetes, allowing the deployment of Kubernetes clusters to be managed using either open source Puppet or Puppet Enterprise. Puppet will maintain the state of your Kubernetes cluster automatically. Using this module will help you deploy Kubernetes quicker, using the Puppet Desired State Language (DSL) to define the state. It is fully open source and community contributions are welcome. The module uses the kubeadm toolkit to bootstrap the Kubernetes cluster.
If you're new to Kubernetes and want get a basic cluster running with a controller and two workers, you're in luck. Kubernetes Rules Everything Around Me (KREAM) is a development environment for the Puppet Kubernetes module that can help you get up to speed.
Watch the below video for a tutorial on installing and configuring a Kubernetes cluster:
Start by downloading the Puppet Kubernetes module from the Puppet Forge. The module comes with a kubetool which will generate the yaml configuration for your Kubernetes deployment. The files produced for each member of the etcd cluster contain certificate information to bootstrap an initial etcd cluster.
Next, add the configuration files generated by the kubetool to Hiera. Each cluster can be allocated its own configuration.
Now it's time to configure the nodes. There can be controller and worker nodes. A node be either controller or worker, but not both.
To configure a controller note, add the following code to a manifest:
controller => true,
To configure a worker note, add this code instead:
worker => true,
Using the module in this way will keep your Kubernetes installation consistently enforced based on the manifests used for its creation, and Puppet will prevent any drift. Keep in mind that the module does not control any containerized applications deployed to the Kubernetes cluster.
GET A FREE TRIAL OF PUPPET
Product Manager, Puppet by Perforce