DigitalOcean Kubernetes (DOKS) is a managed Kubernetes service that lets you deploy Kubernetes clusters without the complexities of handling the control plane and containerized infrastructure. Clusters are compatible with standard Kubernetes toolchains and integrate natively with DigitalOcean Load Balancers and volumes.
You can create a DigitalOcean Kubernetes Cluster at any time from the DigitalOcean Control Panel by opening the Create menu in the top right.
In the Create menu, click Kubernetes to go to the Create a cluster page. On this page, you’ll choose a Kubernetes version, datacenter region, and cluster capacity for your cluster and then create it.
The latest patch version for the three most recent minor versions of Kubernetes are available for new cluster creation. The latest stable release is selected by default.
Choose the region for your cluster. Your cluster’s control plane and worker nodes will be located in the same region.
If you plan to use volumes for persistent data storage, choose a region with volumes support. If you add a DigitalOcean Load Balancer to your deployment, it will automatically be placed in the same region as the cluster.
In the VPC Network section, choose a VPC network for the cluster. You can choose one you’ve created or use your default network for the datacenter region. VPC enables an additional networking interface that can only be accessed by other resources within the same VPC network. This keeps traffic between Droplets and other applicable resource from being routed outside the datacenter over the public internet.
A DOKS cluster has one or more node pools. Each node pool consists of a group of identical worker nodes. Worker nodes are built on Droplets.
To create a cluster, you need to specify the cluster’s scaling type and add at least one node pool with at least one worker. To learn more about how to choose the right cluster capacity, see Choosing the Right Kubernetes Plan.
Choose Fixed size or Autoscale for the scaling type and then specify the following fields for the node pool:
Node pool name. Choose a name for the node pool when it’s created. Nodes inside this pool inherit this naming scheme when they are created. If you rename the node pool later, the nodes will only inherit the new naming scheme when they are recreated (when you recycle the nodes or resize the node pool).
Machine type (Droplet). Choose if you want your worker nodes to be backed by Basic (Regular CPU, Premium Intel CPU, or Premium AMD CPU), General Purpose, CPU-Optimized (Regular Intel CPU or Premium Intel CPU), or Memory-Optimized Droplet plans.
Basic Droplets plans are available for worker nodes in the Basic and Professional plans.
CPU-Optimized, General Purpose, and Memory-Optimized Droplet plans are available for worker nodes in the Professional plan. Professional plans allow 2.5 GB RAM for CPU-Optimized Droplets, and more RAM for other Droplet types.
Node plan. Choose the specific plan you want for your worker nodes. Each of the workers in a node pool has identical resources.
To take advantage of different resource capacities, you can add additional node pools with the Add Additional Node Pool button and assign pods to the node pools with the appropriate scheduling constraints.
Nodes. For a fixed-size cluster, choose how many nodes to include in the node pool. By default, three worker nodes are selected.
Minimum nodes and Maximum nodes. For an autoscaling-enabled cluster, choose the minimum and maximum number of nodes for when the load decreases or increases.
minikubewill generally give you better performance than a one-node cluster for the same cost.
Then, you can optionally select the following settings.
To increase uptime with a 99.95% uptime SLA, you can enable high availability (HA) for the control plane. In the Get extra reliability for critical workloads section, select the Add high availability checkbox.
To integrate your Kubernetes cluster with a DigitalOcean database, we recommend adding a free database operator during creation, now in beta. The database operator allows you to create new databases, automatically link them to your Kubernetes cluster, and manage them. For detailed information on using the operator, see our documentation on GitHub and how-to guide for diagrams.
Note that, while the operator is free, any databases you create with the operator are billed normally.
Finalize the cluster settings. You can specify a name, assign a project, and optionally add tags to the cluster.
By default, cluster names begin with
k8s, followed by the version of Kubernetes, the datacenter region, and the cluster ID. You can customize the cluster name, which will also be used in the tag.
The new cluster belongs to your default project. You can assign the cluster to a different project.
You can also change the project after you create the cluster. Go to the Kubernetes page in the control panel. From the cluster’s More menu, select Move to and select the project you want to move the cluster to.
Associated resources, such as load balancers and volumes, also move when you move the cluster to a different project.
Due to a known issue, resources associated with a DOKS cluster – such as load balancers, volumes, and volume snapshots – belong to the default project upon creation, regardless of which project the cluster belongs to. You can associate resources to the correct project by reconciling the cluster or moving the cluster to a different project.
Clusters automatically have three tags:
You can also add custom tags to a cluster and its node pools in the cluster’s Overview and Resources pages. Any custom tags you add to worker nodes in a node pool (for example, from the Droplets page), are deleted to maintain consistency between the node pool and its worker nodes.
At the bottom of this section, you’ll see the Total monthly cost for your cluster based on the resources you’ve chosen. When you create the cluster, billing begins for each resource (e.g. worker nodes, volumes, load balancers) as it is created and ends as it is destroyed.
When you have entered your settings, create the cluster by clicking the Create Cluster button. It can take several minutes for cluster creation to finish.
Once your cluster is provisioned, you can view cluster information such as the cluster configuration, cost, cluster ID, and control plane high availbility indicator in the Overview tab.
To manage the cluster, use
kubectl, the official Kubernetes command-line client. See How to Connect to a DigitalOcean Kubernetes Cluster to get set up.