diff --git a/docs/Manual/Tutorials/Kubernetes/GKE.md b/docs/Manual/Tutorials/Kubernetes/GKE.md new file mode 100644 index 000000000..b948ca99d --- /dev/null +++ b/docs/Manual/Tutorials/Kubernetes/GKE.md @@ -0,0 +1,119 @@ +# Start ArangoDB on Google Kubernetes Engine in 5 minutes + +In this guide you'll learn how to run ArangoDB on Google Kubernetes Engine (GKE). + +## Create a Kubernetes cluster + +In order to run ArangoDB on GKE you first need to create a Kubernetes cluster. + +To do so, go to the GKE console. +You'll find a list of existing clusters (initially empty). + +![clusters](./gke-clusters.png) + +Click on `CREATE CLUSTER`. + +In the form that follows, enter information as seen in the screenshot below. + +![create a cluser](./gke-create-cluster.png) + +We've succesfully ran clusters with 4 `1 vCPU` nodes or 3 `2 vCPU` nodes. +Smaller node configurations will likely lead to unschedulable `Pods`. + +Once you click `Create`, you'll return to the list of clusters and your +new cluster will be listed there. + +![with new cluster](./gke-clusters-added.png) + +It will take a few minutes for the cluster to be created. + +Once you're cluster is ready, a `Connect` button will appear in the list. + +![cluster is ready](./gke-clusters-ready.png) + +## Getting access to your Kubernetes cluster + +Once your cluster is ready you must get access to it. +The standard `Connect` button provided by GKE will give you access with only limited +permissions. Since the Kubernetes operator also requires some cluster wide +permissions, you need "administrator" permissions. + +To get these permissions, do the following. + +Prepare your `~/.kube/config` with the following content: + +```yaml +apiVersion: v1 +clusters: +- cluster: + certificate-authority-data: + server: https:// + name: my_cluster +contexts: +- context: + cluster: my_cluster + user: my_cluster + name: my_cluster +current-context: my_cluster +kind: Config +preferences: {} +users: +- name: my_cluster + user: + username: admin + password: +``` + +Click on the `Edit` button (pencil image) next to your cluster. +This will lead you to the following page. + +![edit cluster](./gke-edit-cluster.png) + +Copy the `Endpoint` IP address and paste it after `server: https://`. + +The click on `Show credentials`. +The following popup will appear. + +![show credentials](./gke-show-credentials.png) + +Copy the `Password` and paste it after `password:`. + +Close the popup and then return to the cluster list. + +Click on `Connect` next to your cluster. +The following popup will appear. + +![connect to cluster](./gke-connect-to-cluster.png) + +Click on `Run in Cloud Shell`. +It will take some time to launch a shell (in your browser). + +Once ready, run the `gcloud` command that is already prepare in your commandline. + +The run `cat ~/.kube/config` and copy the line that starts with `certificate-authority-data:`. +Override the corresponding line in your local `~/.kube.config` file. + +You should now be able to access your cluster using `kubectl`. + +To verify try a command like: + +```bash +kubectl get pods --all-namespaces +``` + +## Installing `kube-arangodb` + +You can now install the ArangoDB Kubernetes operator in your Kubernetes cluster +on GKE. + +To do so, follow the [Installing kube-arangodb](./README.md#installing-kube-arangodb) instructions. + +## Deploying your first ArangoDB database + +Once the ArangoDB Kubernetes operator has been installed and its `Pods` are in the `Ready` +state, you can launch your first ArangoDB deployment in your Kubernetes cluster +on GKE. + +To do so, follow the [Deploying your first ArangoDB database](./README.md#deploying-your-first-arangodb-database) instructions. + +Note that GKE supports `Services` of type `LoadBalancer`. diff --git a/docs/Manual/Tutorials/Kubernetes/gke-clusters-added.png b/docs/Manual/Tutorials/Kubernetes/gke-clusters-added.png new file mode 100644 index 000000000..845a44495 Binary files /dev/null and b/docs/Manual/Tutorials/Kubernetes/gke-clusters-added.png differ diff --git a/docs/Manual/Tutorials/Kubernetes/gke-clusters-ready.png b/docs/Manual/Tutorials/Kubernetes/gke-clusters-ready.png new file mode 100644 index 000000000..7ecf21fd8 Binary files /dev/null and b/docs/Manual/Tutorials/Kubernetes/gke-clusters-ready.png differ diff --git a/docs/Manual/Tutorials/Kubernetes/gke-clusters.png b/docs/Manual/Tutorials/Kubernetes/gke-clusters.png new file mode 100644 index 000000000..dd9a033bf Binary files /dev/null and b/docs/Manual/Tutorials/Kubernetes/gke-clusters.png differ diff --git a/docs/Manual/Tutorials/Kubernetes/gke-connect-to-cluster.png b/docs/Manual/Tutorials/Kubernetes/gke-connect-to-cluster.png new file mode 100644 index 000000000..80c824f50 Binary files /dev/null and b/docs/Manual/Tutorials/Kubernetes/gke-connect-to-cluster.png differ diff --git a/docs/Manual/Tutorials/Kubernetes/gke-create-cluster.png b/docs/Manual/Tutorials/Kubernetes/gke-create-cluster.png new file mode 100644 index 000000000..2108d5981 Binary files /dev/null and b/docs/Manual/Tutorials/Kubernetes/gke-create-cluster.png differ diff --git a/docs/Manual/Tutorials/Kubernetes/gke-edit-cluster.png b/docs/Manual/Tutorials/Kubernetes/gke-edit-cluster.png new file mode 100644 index 000000000..cd503e53c Binary files /dev/null and b/docs/Manual/Tutorials/Kubernetes/gke-edit-cluster.png differ diff --git a/docs/Manual/Tutorials/Kubernetes/gke-show-credentials.png b/docs/Manual/Tutorials/Kubernetes/gke-show-credentials.png new file mode 100644 index 000000000..bf70bbd0f Binary files /dev/null and b/docs/Manual/Tutorials/Kubernetes/gke-show-credentials.png differ