|
1 | 1 | # Provision a Deis Cluster on DigitalOcean |
2 | 2 |
|
3 | | -## Discovery URL |
4 | | - |
5 | | -Create a user-data file with a new discovery URL this way: |
6 | | - |
7 | | -```console |
8 | | -$ make discovery-url |
9 | | -``` |
10 | | - |
11 | | -Or copy [`contrib/coreos/user-data.example`](../coreos/user-data.example) to `contrib/coreos/user-data` and follow the directions in the `etcd:` section to add a unique discovery URL. |
12 | | - |
13 | | -## Install docl and authorize: |
14 | | -The docl gem consumes the DigitalOcean API. |
15 | | -```console |
16 | | -$ gem install docl |
17 | | -``` |
18 | | - |
19 | | -Before you can authorize you need to [create a Personal Access Token](https://www.digitalocean.com/community/tutorials/how-to-use-the-digitalocean-api-v2). Make sure you create a read & write token. |
20 | | -Copy paste the token (make sure you also save it somewhere encrypted) before you continue to the next step. |
21 | | - |
22 | | -```console |
23 | | -$ docl authorize |
24 | | -``` |
25 | | - |
26 | | -## Upload keys |
27 | | -Choose an SSH keypair to use for Deis and import it to DigitalOcean: |
28 | | -```console |
29 | | -$ docl upload_key deis ~/.ssh/deis.pub |
30 | | -``` |
31 | | -This will print the ID of the uploaded key. Copy and paste the ID, you will need it in a later step. |
32 | | - |
33 | | -In case you forget the ID of the public key you can retrieve it later with the following command: |
34 | | -```console |
35 | | -$ docl keys |
36 | | -``` |
37 | | - |
38 | | -## Choose number of instances |
39 | | -By default, the script will provision 3 servers. You can override this by setting `DEIS_NUM_INSTANCES`: |
40 | | -```console |
41 | | -$ export DEIS_NUM_INSTANCES=5 |
42 | | -``` |
43 | | - |
44 | | -Note that for scheduling to work properly, clusters must consist of at least 3 nodes and always have an odd number of members. |
45 | | -For more information, see [optimal etcd cluster size](https://github.com/coreos/etcd/blob/master/Documentation/optimal-cluster-size.md). |
46 | | - |
47 | | -Deis clusters of less than 3 nodes are unsupported. |
48 | | - |
49 | | -## Deploy cluster |
50 | | -Run the provision script: |
51 | | -```console |
52 | | -$ ./provision-do-cluster.sh <REGION_ID> <SSH_ID> <SIZE> |
53 | | -``` |
54 | | - |
55 | | -Not all regions allow private networks. Choose one which does (at the time of this writing, NY 2 & 3, |
56 | | -Amsterdam 2 & 3, Singapore 1 or London 1) - check the web UI for the current private network support. |
57 | | - |
58 | | -You can enumerate all of the supported regions with: |
59 | | - |
60 | | -```console |
61 | | -$ docl regions --private_networking --metadata |
62 | | -``` |
63 | | - |
64 | | -Deis controller nodes will need at least 2 GB to even start all |
65 | | -the services. Add the memory requirements of deployed applications and choose an adequate |
66 | | -droplet size. The default is 8 GB. Specify the size with NGB, where N is 2, 4, 8, 16, 32 or 64. |
67 | | - |
68 | | -This will print the IP addresses of the initialized machines. |
69 | | - |
70 | | -## Configure Deis |
71 | | -Set the default domain used to anchor your applications: |
72 | | - |
73 | | -```console |
74 | | -$ deisctl config platform set domain=mycluster.local |
75 | | -``` |
76 | | - |
77 | | -For this to work, you'll need to configure DNS records so you can access applications hosted on Deis. See [Configuring DNS](http://docs.deis.io/en/latest/managing_deis/configure-dns/#dns-records) for details. |
78 | | - |
79 | | -If you want to allow `deis run` for one-off admin commands, you must provide an SSH private key that allows Deis to gather container logs on CoreOS hosts: |
80 | | - |
81 | | -```console |
82 | | -$ deisctl config platform set sshPrivateKey=<path-to-private-key> |
83 | | -``` |
84 | | - |
85 | | -## Initialize the cluster |
86 | | -set DEISCTL_TUNNEL to one of the IPs of the virtual machines (these are printed on the console in a previous step). You can also login to the web interface of DigitalOcean to see the Public IP addresses. |
87 | | - |
88 | | -```console |
89 | | -$ export DEISCTL_TUNNEL=23.253.219.94 |
90 | | -$ deisctl install platform && deisctl start platform |
91 | | -``` |
92 | | -Deisctl will deploy Deis and make sure the services are started properly. Grab a coffee. |
93 | | - |
94 | | -### Use Deis! |
95 | | -After that, register with Deis! |
96 | | -```console |
97 | | -$ deis register http://deis.example.org |
98 | | -username: deis |
99 | | -password: |
100 | | -password (confirm): |
101 | | -email: info@opdemand.com |
102 | | -``` |
103 | | - |
104 | | -## Hack on Deis |
105 | | - |
106 | | -See [Hacking on Deis](http://docs.deis.io/en/latest/contributing/hacking/). |
| 3 | +Please refer to the instructions at http://docs.deis.io/en/latest/installing_deis/digitalocean/. |
0 commit comments