mirror of https://github.com/knative/docs.git
Add documentation for creating a K8S cluster with GKE or Minikube (#166)
* Add documentation for creating a K8S cluster The GKE instructions have been verified to work, but Minikube is a WIP. * fix some formatting * indent code block correctly * Specify that this is Elafros-specific
This commit is contained in:
commit
186f5783ce
|
@ -0,0 +1,104 @@
|
||||||
|
# Creating a Kubernetes Cluster for Elafros
|
||||||
|
|
||||||
|
Two options:
|
||||||
|
|
||||||
|
* Setup a [GKE cluster](#gke)
|
||||||
|
* Run [minikube](#minikube) locally
|
||||||
|
|
||||||
|
## GKE
|
||||||
|
|
||||||
|
To use a k8s cluster running in GKE:
|
||||||
|
|
||||||
|
1. Install `gcloud` using
|
||||||
|
[the instructions for your platform](https://cloud.google.com/sdk/downloads).
|
||||||
|
|
||||||
|
2. Create a GCP project (or use an existing project if you've already created
|
||||||
|
one) at http://console.cloud.google.com/home/dashboard. Set the ID of the
|
||||||
|
project in an environment variable (e.g. `PROJECT_ID`) along with the email
|
||||||
|
of your GCP user (`GCP_USER`).
|
||||||
|
|
||||||
|
3. Enable the k8s API:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gcloud --project=$PROJECT_ID services enable container.googleapis.com
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Create a k8s cluster:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gcloud --project=$PROJECT_ID container clusters create \
|
||||||
|
# Version 1.9+ is required
|
||||||
|
--cluster-version=1.9.2-gke.1 \
|
||||||
|
# Change this to whichever zone you choose
|
||||||
|
--zone=us-east1-d \
|
||||||
|
# cloud-platform scope is required to access GCB
|
||||||
|
--scopes=cloud-platform \
|
||||||
|
# Autoscale from 1 to 3 nodes. Adjust this for your use case
|
||||||
|
--enable-autoscaling --min-nodes=1 --max-nodes=3 \
|
||||||
|
# Change this to your preferred cluster name
|
||||||
|
elafros-demo
|
||||||
|
```
|
||||||
|
|
||||||
|
You can see the list of supported cluster versions in a particular zone
|
||||||
|
by running:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# Get the list of valid versions in us-east1-d
|
||||||
|
gcloud container get-server-config --zone us-east1-d
|
||||||
|
```
|
||||||
|
|
||||||
|
5. If you haven't installed `kubectl` yet, you can install it now with `gcloud`:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gcloud components install kubectl
|
||||||
|
```
|
||||||
|
|
||||||
|
6. Give your gcloud user cluster-admin privileges:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
kubectl create clusterrolebinding gcloud-admin-binding \
|
||||||
|
--clusterrole=cluster-admin \
|
||||||
|
--user=$GCP_USER
|
||||||
|
```
|
||||||
|
|
||||||
|
7. Enable the GCR API:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gcloud --project=$PROJECT_ID service-management enable containerregistry.googleapis.com
|
||||||
|
```
|
||||||
|
|
||||||
|
8. Install the `docker-credential-gcr` helper so Docker (and Bazel) can
|
||||||
|
authenticate with GCR:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
gcloud components install docker-credential-gcr
|
||||||
|
```
|
||||||
|
|
||||||
|
9. Add the GCR credentials to the Docker config file:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
docker-credential-gcr configure-docker
|
||||||
|
```
|
||||||
|
|
||||||
|
Now you can use `gcr.io/$PROJECT_ID` as your Docker repo and your GKE
|
||||||
|
cluster will automatically pull from it.
|
||||||
|
|
||||||
|
## Minikube
|
||||||
|
|
||||||
|
To run a k8s cluster locally, you will need to [install and configure
|
||||||
|
minikube](https://github.com/kubernetes/minikube#minikube) with a [VM
|
||||||
|
driver](https://github.com/kubernetes/minikube#requirements), e.g. `kvm` on
|
||||||
|
Linux or `xhyve` on macOS.
|
||||||
|
|
||||||
|
If this worked, you should be able to walk through [the minikube
|
||||||
|
quickstart](https://github.com/kubernetes/minikube#quickstart) successfully.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
minikube start \
|
||||||
|
# Kubernetes version must be at least 1.9.0
|
||||||
|
--kubernetes-version=v1.9.0 \
|
||||||
|
# Use the VM driver you installed above
|
||||||
|
--vm-driver=kvm
|
||||||
|
```
|
||||||
|
|
||||||
|
_TODO Add instructions for setting up a local registry_
|
Loading…
Reference in New Issue