Kubernetes Gardener
Bootstrapping Gardener
To set up your own Gardener for your organization’s Kubernetes-as-a-Service needs, follow the
documentation.
For testing purposes, you can set up Gardener on your laptop by checking out the source code repository and simply running make kind-up gardener-up
(the easiest developer way of checking out Gardener!).
Alternatively, 23 Technologies GmbH
offers a fully-managed Gardener service that conveniently works with all supported cloud providers and comes with a free trial: Okeanos
. Similarly, cloud providers such as STACKIT
, B'Nerd
, MetalStack
, and many others run Gardener as their Kubernetes Engine.
To learn more about the inception of this open source project, read Gardener Project Update and Gardener - The Kubernetes Botanist on kubernetes.io
.
Gardener yourself a Shoot with Istio, custom Domains, and Certificates is a detailed tutorial for the end user of Gardener.
Install and configure kubectl
If you already have
kubectl
CLI, runkubectl version --short
to check the version. You need a current version that at least matches your Kubernetes cluster version you want to order. If yourkubectl
is older, follow the next step to install a newer version.
Access Gardener
Create a project in the Gardener dashboard. This will essentially create a Kubernetes namespace with the name
garden-<my-project>
.Configure access to your Gardener project using a kubeconfig.
If you are not the Gardener Administrator already, you can create a technical user in the Gardener dashboard: go to the “Members” section and add a service account. You can then download the kubeconfig for your project. Make sure you
export KUBECONFIG=garden-my-project.yaml
in your shell.
Creating a Kubernetes cluster
You can create your cluster using the kubectl
cli by providing a cluster
specification yaml file. You can find an example for GCP
here.
Make sure the namespace matches that of your project. Then apply the
prepared so-called “shoot” cluster manifest with kubectl
:
$ kubectl apply --filename my-cluster.yaml
An easier alternative is to create the cluster following the cluster creation wizard in the Gardener dashboard:
Configure kubectl
for your cluster
You can now download the kubeconfig for your freshly created cluster in the Gardener dashboard or via cli as follows:
$ kubectl --namespace shoot--my-project--my-cluster get secret kubecfg --output jsonpath={.data.kubeconfig} | base64 --decode > my-cluster.yaml
This kubeconfig file has full administrator access to you cluster.
For any activities with the payload cluster be sure you have export KUBECONFIG=my-cluster.yaml
set.
Cleaning up
Use the Gardener dashboard to delete your cluster, or execute the following with
kubectl
pointing to your garden-my-project.yaml
kubeconfig:
$ kubectl --kubeconfig garden-my-project.yaml --namespace garden--my-project annotate shoot my-cluster confirmation.garden.sapcloud.io/deletion=true
$ kubectl --kubeconfig garden-my-project.yaml --namespace garden--my-project delete shoot my-cluster