|
| 1 | +# Installing Deis Workflow |
| 2 | + |
| 3 | +This document is aimed at those who have already provisioned a Kubernetes cluster and want to install Deis Workflow. If |
| 4 | +you are just getting started with Kubernetes and Deis Workflow, follow our [quickstart guide](../quickstart/index.md) |
| 5 | +with help booting Kubernetes and installing Workflow. |
| 6 | + |
| 7 | + |
| 8 | +## Prerequisites |
| 9 | + |
| 10 | +You need to [install Helm Classic and Deis Workflow CLI before continuing](../quickstart/install-cli-tools.md). |
| 11 | + |
| 12 | +## Check Your Setup |
| 13 | + |
| 14 | +Check that the `helmc` command is available and the version is 0.7 or newer. |
| 15 | + |
| 16 | +``` |
| 17 | +$ helmc --version |
| 18 | +helmc version 0.7.0+20a7ed7 |
| 19 | +``` |
| 20 | + |
| 21 | +Ensure the `kubectl` client is installed and can connect to your Kubernetes cluster. `helmc` uses `kubectl` to interact |
| 22 | +with your Kubernetes cluster. |
| 23 | + |
| 24 | +You can test that helmc and kubectl are working properly by running: |
| 25 | + |
| 26 | +``` |
| 27 | +$ helmc target |
| 28 | +Kubernetes master is running at https://52.9.206.49 |
| 29 | +Elasticsearch is running at https://52.9.206.49/api/v1/proxy/namespaces/kube-system/services/elasticsearch-logging |
| 30 | +Heapster is running at https://52.9.206.49/api/v1/proxy/namespaces/kube-system/services/heapster |
| 31 | +Kibana is running at https://52.9.206.49/api/v1/proxy/namespaces/kube-system/services/kibana-logging |
| 32 | +KubeDNS is running at https://52.9.206.49/api/v1/proxy/namespaces/kube-system/services/kube-dns |
| 33 | +kubernetes-dashboard is running at https://52.9.206.49/api/v1/proxy/namespaces/kube-system/services/kubernetes-dashboard |
| 34 | +Grafana is running at https://52.9.206.49/api/v1/proxy/namespaces/kube-system/services/monitoring-grafana |
| 35 | +InfluxDB is running at https://52.9.206.49/api/v1/proxy/namespaces/kube-system/services/monitoring-influxdb |
| 36 | +``` |
| 37 | + |
| 38 | +If you see a list of targets like the one above, `helmc` can communicate with the Kubernetes master. Also make sure that |
| 39 | +kubectl is pointing at the cluster you expect. |
| 40 | + |
| 41 | +## Add the Deis Chart Repository |
| 42 | + |
| 43 | +The [Deis Chart Repository](https://github.com/deis/charts) contains everything you need to install Deis Workflow onto |
| 44 | +your Kubernetes cluster, with a single `helmc install` command. |
| 45 | + |
| 46 | +Add this repository to Helm Classic: |
| 47 | + |
| 48 | +``` |
| 49 | +$ helmc repo add deis https://github.com/deis/charts |
| 50 | +``` |
| 51 | + |
| 52 | +## Install Deis Workflow |
| 53 | + |
| 54 | +Now that you have Helm Classic installed and have added the Deis Chart Repository, install Workflow by running: |
| 55 | + |
| 56 | +``` |
| 57 | +$ helmc fetch deis/workflow-beta3 # fetches the chart into a |
| 58 | + # local workspace |
| 59 | +$ helmc generate -x manifests workflow-beta3 # generates various secrets |
| 60 | +$ helmc install workflow-beta3 # injects resources into |
| 61 | + # your cluster |
| 62 | +``` |
| 63 | + |
| 64 | +Helm Classic will install a variety of Kubernetes resources in the `deis` namespace. |
| 65 | +You'll need to wait for the pods that it launched to be ready. Monitor their status |
| 66 | +by running: |
| 67 | + |
| 68 | +``` |
| 69 | +$ kubectl get pods --namespace=deis |
| 70 | +``` |
| 71 | + |
| 72 | +If you would like `kubectl` to automatically update as the pod states change, run (type Ctrl-C to stop the watch): |
| 73 | +``` |
| 74 | +$ kubectl get pods --namespace=deis -w |
| 75 | +``` |
| 76 | + |
| 77 | +Depending on the order in which the Workflow components start, you may see a few components restart. This is common during the installation process, if a component's dependencies are not yet available the component will exit and Kubernetes will automatically restart the containers. |
| 78 | + |
| 79 | +Here, you can see that controller, builder and registry all took a few loops before there were able to start: |
| 80 | +``` |
| 81 | +$ kubectl get pods --namespace=deis |
| 82 | +NAME READY STATUS RESTARTS AGE |
| 83 | +deis-builder-hy3xv 1/1 Running 5 5m |
| 84 | +deis-controller-g3cu8 1/1 Running 5 5m |
| 85 | +deis-database-rad1o 1/1 Running 0 5m |
| 86 | +deis-logger-fluentd-1v8uk 1/1 Running 0 5m |
| 87 | +deis-logger-fluentd-esm60 1/1 Running 0 5m |
| 88 | +deis-logger-sm8b3 1/1 Running 0 5m |
| 89 | +deis-minio-4ww3t 1/1 Running 0 5m |
| 90 | +deis-registry-asozo 1/1 Running 1 5m |
| 91 | +deis-router-k1ond 1/1 Running 0 5m |
| 92 | +deis-workflow-manager-68nu6 1/1 Running 0 5m |
| 93 | +``` |
| 94 | + |
| 95 | +Once you see all of the pods in the `READY` state, Deis Workflow is up and running! |
0 commit comments