Kubernetes
Kubernetes is an open source project for running and managing containerized applications on a cluster of machines.
Pulumi is an infrastructure-as-code tool that exposes the Kubernetes resource API as an SDK, alongside other SDKs which span common cloud native utilities, cloud provider IaaS offerings, and their catalog of services - managed Kubernetes included.
Use Cases
The various SDKs allow Kubernetes users to leverage Pulumi for novel forms of cluster management, and deployment of app workloads to clusters. Users of Kubernetes and Pulumi can:
- Instantiate IaaS resources and managed services from any cloud.
- Provision managed Kubernetes clusters from the major cloud providers.
- Provision self-managed (open source) Kubernetes clusters on top of raw IaaS resources or on-prem virtualization providers.
- Create and orchestrate Kubernetes API resources for app workloads, in the programming language of their choice.
- Manage real code instead of YAML, JSON, DSL’s, or tar archives of templates.
- Apply standard software development practices to Kubernetes applications, including the use of functions, classes, loops, conditionals, etc.
- Increase productivity using the power of dev tools such as IDE auto-completion, type & error checking, linting, refactoring, and testing frameworks to validate Kubernetes clusters, app workloads, or both.
Pulumi Kubernetes Provider
The Kubernetes provider for Pulumi can be used to provision any resources available in the Kubernetes API. The Kubernetes provider must be configured with a kubeconfig
or other credentials to connect to a target Kubernetes cluster.
Getting Started
The quickest way to get started with Kubernetes is to follow the Get Started guide.
Additional Pulumi Packages for Kubernetes Users
For Cluster Management
The following SDKs are available to work with IaaS resources, and managed or self-managed Kubernetes clusters.
The packages are available in Node.js (Javascript and Typescript), Python, Go, .NET and Java.
- AWS:
pulumi/aws
- Azure:
pulumi/azure-native
- DigitalOcean:
pulumi/digitalocean
- Google Cloud:
pulumi/gcp
Extension Packages
pulumi/awsx
- AWS Extensionspulumi/eks
- Manage EKS clusters
For Workload Management
The pulumi/kubernetes
provider is available to work with, and deploy app workloads to running Kubernetes clusters:
- JavaScript/TypeScript: npm
- Python: PyPI
- Go:
- Import package:
github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes
- GitHub
- Import package:
- .NET:
Pulumi.Kubernetes
- Java:
com.pulumi.kubernetes
- Pulumi YAML
Extension Packages
pulumi/kx
- Kubernetes Workload Extensions
Crosswalk for Kubernetes
Pulumi Crosswalk for Kubernetes is a collection of industry standard best-practices for managing Kubernetes, and its infrastructure in production.
Get started by deploying stacks of infrastructure architected to enable teams to run and manage Kubernetes in production.
Pulumi Kubernetes Operator
The Pulumi Kubernetes Operator is an extension pattern that
enables Kubernetes users to create a Stack
as a first-class API
resource, and use the StackController
to drive the updates of the Stack until
success.
Deploying Pulumi Stacks in Kubernetes provides the capability to build out CI/CD and automation systems into your clusters, creating native support to manage your infrastructure alongside your Kubernetes workloads.
Get started with the Pulumi Kubernetes Operator in your continuous delivery pipelines.