1
0
mirror of https://github.com/funkypenguin/geek-cookbook/ synced 2025-12-12 17:26:19 +00:00
Files
geek-cookbook/docs/kubernetes/cluster/digitalocean.md
David Young 31be95b704 Fix (some) broken links
Signed-off-by: David Young <davidy@funkypenguin.co.nz>
2023-02-07 13:13:28 +13:00

3.9 KiB

description
description
Creating a Kubernetes cluster on DigitalOcean

Kubernetes on DigitalOcean

IMO, the easiest Kubernetes cloud provider to experiment with is DigitalOcean (this is a referral link). I've included instructions below to start a basic cluster.

Kubernetes on Digital Ocean

Ingredients

  1. DigitalOcean account, either linked to a credit card or (my preference for a trial) topped up with $5 credit from PayPal. (yes, this is a referral link, making me some 💰 to buy 🍷)
  2. Geek-Fu required : 🐱 (easy - even has screenshots!)

Preparation

Create DigitalOcean Account

Create a project, and then from your project page, click Manage -> Kubernetes (LTD) in the left-hand panel:

Kubernetes on Digital Ocean Screenshot #1{ loading=lazy }

Until DigitalOcean considers their Kubernetes offering to be "production ready", you'll need the additional step of clicking on Enable Limited Access:

Kubernetes on Digital Ocean Screenshot #2{ loading=lazy }

The Enable Limited Access button changes to read Create a Kubernetes Cluster . Cleeeek it:

Kubernetes on Digital Ocean Screenshot #3{ loading=lazy }

When prompted, choose some defaults for your first node pool (your pool of "compute" resources for your cluster), and give it a name. In more complex deployments, you can use this concept of "node pools" to run certain applications (like an inconsequential nightly batch job) on a particular class of compute instance (such as cheap, preemptible instances)

Kubernetes on Digital Ocean Screenshot #4{ loading=lazy }

That's it! Have a sip of your 🍷, a bite of your 🧀, and wait for your cluster to build. While you wait, follow the instructions to setup kubectl (if you don't already have it)

Kubernetes on Digital Ocean Screenshot #5{ loading=lazy }

DigitalOcean will provide you with a "kubeconfig" file to use to access your cluster. It's at the bottom of the page (illustrated below), and easy to miss (in my experience).

Kubernetes on Digital Ocean Screenshot #6{ loading=lazy }

Release the kubectl!

Save your kubeconfig file somewhere, and test it our by running kubectl --kubeconfig=<PATH TO KUBECONFIG> get nodes 1

Example output:

[davidy:~/Downloads] 130 % kubectl --kubeconfig=penguins-are-the-sexiest-geeks-kubeconfig.yaml get nodes
NAME                  STATUS    ROLES     AGE       VERSION
festive-merkle-8n9e   Ready     <none>    20s       v1.13.1
[davidy:~/Downloads] %

In the example above, my nodes were being deployed. Repeat the command to see your nodes spring into existence:

[davidy:~/Downloads] % kubectl --kubeconfig=penguins-are-the-sexiest-geeks-kubeconfig.yaml get nodes
NAME                  STATUS    ROLES     AGE       VERSION
festive-merkle-8n96   Ready     <none>    6s        v1.13.1
festive-merkle-8n9e   Ready     <none>    34s       v1.13.1
[davidy:~/Downloads] %

[davidy:~/Downloads] % kubectl --kubeconfig=penguins-are-the-sexiest-geeks-kubeconfig.yaml get nodes
NAME                  STATUS    ROLES     AGE       VERSION
festive-merkle-8n96   Ready     <none>    30s       v1.13.1
festive-merkle-8n9a   Ready     <none>    17s       v1.13.1
festive-merkle-8n9e   Ready     <none>    58s       v1.13.1
[davidy:~/Downloads] %

That's it. You have a beautiful new kubernetes cluster ready for some action!

--8<-- "recipe-footer.md"


  1. Do you live in the CLI? Install the kubectl autocompletion for bash or zsh to make your life much easier! ↩︎