## Kubernetes Cluster on AWS

Deploy a Kubernetes cluster on AWS with Pulumi and Amazon EKS.

## Kubernetes Cluster on Azure

Deploy a Kubernetes cluster on Azure with Pulumi and Azure Kubernetes Service (AKS).

## Kubernetes Cluster on Google Cloud

Deploy a Kubernetes cluster on Google Cloud with Pulumi and Google Kubernetes Engine (GKE).

## About these templates

### What is Kubernetes?

[Kubernetes](/content/kubernetes/index.html) is an open-source container orchestration platform. It runs a control plane that schedules, deploys, and scales containerized workloads across a cluster of machines using a declarative, desired-state model. Kubernetes is portable across clouds, scales horizontally, and supports a large ecosystem of extensions through Helm charts and Custom Resource Definitions.

### Which managed Kubernetes service should I use on each cloud?

Each major cloud offers a managed control plane so you don’t have to operate Kubernetes yourself:

- **AWS**: [Amazon EKS](/content/registry/packages/eks/api-docs/cluster/index.html) — runs your workloads on either EC2 nodes you manage or [AWS Fargate](/content/registry/packages/awsx/api-docs/ecs/fargateservice/index.html) serverless capacity.
- **Azure**: [Azure Kubernetes Service (AKS)](/content/registry/packages/azure-native/api-docs/containerservice/managedcluster/index.html) — integrates with Azure Active Directory and Azure Monitor.
- **Google Cloud**: [Google Kubernetes Engine (GKE)](/content/registry/packages/gcp/api-docs/container/cluster/index.html) — integrates tightly with the rest of Google Cloud and supports Autopilot for fully managed nodes.

### How do I deploy a Kubernetes cluster with Pulumi?

Use one of the Kubernetes Cluster templates above to scaffold a Pulumi project that provisions a managed cluster and the surrounding infrastructure (VPC, subnets, IAM, node pools). Each template deploys end to end with `pulumi new` followed by `pulumi up` and exports a `kubeconfig` you can use immediately with `kubectl`.

### How do I deploy applications onto an existing cluster?

Once your cluster is running, the [Kubernetes Application templates](/content/templates/kubernetes-application/index.html) give you a starting point for deploying workloads — either a [Helm chart](/content/templates/kubernetes-application/helm-chart/index.html) or a [Kubernetes Deployment + Service](/content/templates/kubernetes-application/web-application/index.html) — using the same language as your cluster’s infrastructure code.
