diff options
author | Joseph Henry <josephjah@gmail.com> | 2016-08-17 15:28:48 -0700 |
---|---|---|
committer | Joseph Henry <josephjah@gmail.com> | 2016-08-17 15:28:48 -0700 |
commit | ba78676ace0ffb2c0d43f2897341f1664b7c3037 (patch) | |
tree | 6a377c49a2f64a3ebd7c14cbbcff156f19e8f5fb /doc | |
parent | 0d37b7b66522d6a8415be8b0361df398fa1f5d6e (diff) | |
download | infinitytier-ba78676ace0ffb2c0d43f2897341f1664b7c3037.tar.gz infinitytier-ba78676ace0ffb2c0d43f2897341f1664b7c3037.zip |
kubernetes tutorial update
Diffstat (limited to 'doc')
-rw-r--r-- | doc/ext/ztkube.md | 46 |
1 files changed, 30 insertions, 16 deletions
diff --git a/doc/ext/ztkube.md b/doc/ext/ztkube.md index 483a0ff6..6670e926 100644 --- a/doc/ext/ztkube.md +++ b/doc/ext/ztkube.md @@ -3,33 +3,32 @@ Kubernetes + ZeroTier A self-authorizing Kubernetes deployment on a ZeroTier private network. -This is a quick tutorial for setting up a Kubernetes deployment which can self-authorize each new replica onto your private ZeroTier network with no additional configuration needed when you scale. The Kubernetes-specific instructions and content is based on the [hellonode](http://kubernetes.io/docs/hellonode/) tutorial. +This is a quick tutorial for setting up a Kubernetes deployment which can self-authorize each new replica onto your private ZeroTier network with no additional configuration needed when you scale. The Kubernetes-specific instructions and content is based on the [hellonode](http://kubernetes.io/docs/hellonode/) tutorial. All of the files discussed below can be found [here](); ## Preliminary tasks -**Step 1: Go to [my.zerotier.com](https://www.my.zerotier.com) and generate an API key. This key will be used by ZeroTier to automatically authorize new instances of your VMs to join your deployment network during replication. +**Step 1: Go to [my.zerotier.com](https://my.zerotier.com) and generate an API key. This key will be used by ZeroTier to automatically authorize new instances of your VMs to join your deployment network during replication.**a -**Step 2: Create a new `private` network. Take note of the network ID: `nwid` +**Step 2: Create a new `private` network. Take note of the network ID: `nwid`** -**Step 3: Follow the instructions from the [hellonode](ttp://kubernetes.io/docs/hellonode/) tutorial and set up your development system (install Google Cloud SDK). +**Step 3: Follow the instructions from the [hellonode](ttp://kubernetes.io/docs/hellonode/) tutorial and set up your development system (install Google Cloud SDK).** ## Construct docker container -Step 4: Create necessary files for inclusion in Dockerfile +**Step 4: Create necessary files for inclusion in Dockerfile** - `mkdir ztkube` -### Add the following files to the `ztkube` directory. These files will be compiled into the Docker image. +Add the following files to the `ztkube` directory. These files will be compiled into the Docker image. Create an empty file to specify the private deployment network you created in *Step 2*: - `<nwid>.conf` - - The `entrypoint.sh` script will start the ZeroTier service in the VM, attempt to join your deployment network and automatically authorize the new VM if your network is set to private. ``` ./zerotier @@ -37,7 +36,7 @@ zerotier-cli join $(NWID).conf zerotier-cli net-auth $(NWID) $(DEVID) ``` -The cli tool config `.zerotierCliSettings`, this should contain your API keys to authorize new devices on your network. In this example the default controller is hosted by us at [my.zerotier.com](https://www.my.zerotier.com). YOu can host your own network controller and you'll need to modify the cli config accordingly: + - The CLI tool config file `.zerotierCliSettings` should contain your API keys to authorize new devices on your network. In this example the default controller is hosted by us at [my.zerotier.com](https://my.zerotier.com). Alternatively, you can host your own network controller but you'll need to modify the CLI config file accordingly. ``` { @@ -61,8 +60,7 @@ The cli tool config `.zerotierCliSettings`, this should contain your API keys to ``` - -`Dockerfile` + - The `Dockerfile` will copy the ZeroTier service as well as the ZeroTier CLI to the image: ``` FROM node:4.4 @@ -75,22 +73,38 @@ COPY .zerotierCliSettings <settings path>?> CMD node server.js ``` -Step 5: Lastly, build the image: + - The `entrypoint.sh` script will start the ZeroTier service in the VM, attempt to join your deployment network and automatically authorize the new VM if your network is set to private. + +**Step 5: Lastly, build the image:** + `docker build -t gcr.io/$PROJECT_ID/hello-node .` -Step 6: Build and push the docker image to your *Container Registry* + + +**Step 6: Push the docker image to your *Container Registry** `gcloud docker push gcr.io/$PROJECT_ID/hello-node:v1` -Step 7: Create Kubernetes Cluster + + +**Step 7: Create Kubernetes Cluster** + `gcloud config set compute/zone us-central1-a` + `gcloud container clusters create hello-world` + `gcloud container clusters get-credentials hello-world` -Step 8: Create your pod + + +**Step 8: Create your pod** + `kubectl run hello-node --image=gcr.io/$PROJECT_ID/hello-node:v1 --port=8080` -Step 9: Scale + + +**Step 9: Scale** + `kubectl scale deployment hello-node --replicas=4` -Now, after a minute or so you can use `zerotier-cli net-members <nwid>` to show all of your VM instances on your ZeroTier deployment network. If you haven't configured your local CLI, you can simply log into [my.zerotier.com](https://my.zerotier.com), go to *Networks -> <nwid>*. +Now, after a minute or so you can use `zerotier-cli net-members <nwid>` to show all of your VM instances on your ZeroTier deployment network. If you haven't [configured your local CLI](), you can simply log into [my.zerotier.com](https://my.zerotier.com), go to *Networks -> <nwid>*. |