-
Notifications
You must be signed in to change notification settings - Fork 140
/
gcp.html.md.erb
233 lines (184 loc) · 12.4 KB
/
gcp.html.md.erb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
---
title: Installing Ops Manager on GCP
owner: Ops Manager
---
This topic describes how to install [<%= vars.platform_name %>](https://network.pivotal.io/products/pivotal-cf) on Google Cloud Platform (GCP).
It includes resource requirements, prerequisites, instructions for installing <%= vars.platform_name %> on GCP, and additional resources.
## <a id="overview"></a> Overview
You can install <%= vars.platform_name %> on GCP with either the <%= vars.app_runtime_full %> (<%= vars.app_runtime_abbr %>) or <%= vars.k8s_runtime_full %> (<%= vars.k8s_runtime_abbr %>) runtime. There are resource requirements specific to each runtime. Ensure you meet the requirements for your runtime and the requirements specific to GCP before installing <%= vars.platform_name %> on GCP.
## <a id="requirements"></a> Requirements
This section lists the following resource requirements for installing <%= vars.platform_name %> on GCP:
* General <%= vars.platform_name %> resource requirements. See [<%= vars.platform_name %> Resource Requirements](#general-requirements).
* GCP-specific resource requirements. See [GCP Resource Requirements](#gcp-requirements).
### <a id="general-requirements"></a> <%= vars.platform_name %> Resource Requirements
This section lists resource requirements for installing <%= vars.platform_name %> on GCP. It includes general resource requirements for both the <%= vars.app_runtime_abbr %> and <%= vars.k8s_runtime_abbr %> runtimes.
View one of the following, depending on your runtime:
* <%= vars.app_runtime_abbr %>-specific resource requirements. See [<%= vars.app_runtime_abbr %> Resource Requirements](#pas).
* <%= vars.k8s_runtime_abbr %>-specific resource requirements. See [<%= vars.k8s_runtime_abbr %> Resource Requirements](#pks).
#### <a id="pas"></a> <%= vars.app_runtime_abbr %> Resource Requirements
The following are general resource requirements for deploying and managing an <%= vars.platform_name %> deployment with <%= vars.app_runtime_abbr %>:
* <%= vars.app_runtime_abbr %> requires sufficient IP allocation. The following lists the minimum required IP allocations:
* One static IP address for either HAProxy or one of your Gorouters
* One static IP address for each job in the each tile. See the **Resource Config** pane for each tile for a full list.
* One static IP address for each job listed below:
* Consul
* NATS
* File Storage
* MySQL Proxy
* MySQL Server
* Backup Restore Node
* HAProxy
* Router
* MySQL Monitor
* Diego Brain
* TCP Router
* One IP for each VM instance created by the service.
* An additional IP address for each compilation worker. Use the following formula to determine the total IPs required: `IPs needed = static IPs + VM instances + compilation workers`.
* <%= vars.company_name %> recommends that you allocate at least 36 dynamic IP addresses when deploying <%= vars.ops_manager %> with <%= vars.app_runtime_abbr %>. BOSH requires additional dynamic IP addresses during installation to compile and deploy VMs, install <%= vars.app_runtime_abbr %>, and connect to services.
* <%= vars.company_name %> recommends using a network without DHCP for deploying <%= vars.app_runtime_abbr %> VMs.
<p class="note"><strong>Note:</strong> If you have DHCP, refer to the <a href="./troubleshooting.html">Troubleshooting Guide</a> to avoid issues with your installation.</p>
#### <a id="pks"></a> <%= vars.k8s_runtime_abbr %> Resource Requirements
For <%= vars.k8s_runtime_abbr %>-specific resource requirements, see [GCP Prerequisites and Resource Requirements](https://docs.pivotal.io/tkgi/gcp-requirements.html).
### <a id="gcp-requirements"></a> GCP Resource Requirements
The following are GCP-specific resource requirements for installing <%= vars.platform_name %> on GCP:
* Installing <%= vars.platform_name %> on GCP requires a minimum of the following VM instance limits in your GCP account. The number of VMs required depends on the number of tiles and availability zones you plan to deploy. The following VM guidelines apply to the <%= vars.app_runtime_abbr %> and Small Footprint <%= vars.app_runtime_abbr %> runtimes:
* **<%= vars.app_runtime_abbr %>:** At a minimum, a new GCP deployment requires the following `custom` VMs for <%= vars.app_runtime_abbr %> and <%= vars.ops_manager %>:
<table border='1' class='nice'>
<tr>
<th width ="33%">VM Count</th>
<th width ="33%">vCPU Count per VM</th>
<th width ="33%">RAM (GB)</th>
</tr><tr>
<td>28</td>
<td>1</td>
<td>1</td>
</tr><tr>
<td>2</td>
<td>2</td>
<td>1</td>
</tr><tr>
<td>3</td>
<td>1</td>
<td>2</td>
</tr><tr>
<td>4</td>
<td>2</td>
<td>4</td>
</tr><tr>
<td>3</td>
<td>2</td>
<td>8</td>
</tr><tr>
<td>3</td>
<td>4</td>
<td>16</td>
</tr>
</table>
<p class="note"><b>Note: </b>If you are deploying a test or sandbox deployment that does not require high availability, then you can scale down the number of VM instances in your deployment. For more information, see <a href="../opsguide/scaling-ert-components.html">Scaling <%= vars.app_runtime_abbr %></a>.</p>
* **Small Footprint <%= vars.app_runtime_abbr %>:** At a minimum, a new GCP deployment requires the following VMs to run Small Footprint <%= vars.app_runtime_abbr %>:
<table id='small-footprint' border="1" class="nice">
<tr>
<th width ="15%"></th>
<th width ="15%">VM Type</th>
<th width ="15%">VM Count</th>
<th width ="15%">vCPU Count per VM</th>
<th width ="15%">RAM (GB)</th>
<th width ="25%">Notes</th>
</tr><tr>
<th rowspan=7>Small Footprint <%= vars.app_runtime_abbr %></th>
<td>micro</td>
<td>11</td>
<td>1</td>
<td>1</td>
<td>Add 1 to VM count if using HAProxy</td>
</tr><tr>
<td>small</td>
<td>3</td>
<td>1</td>
<td>2</td>
<td></td>
</tr><tr>
<td>highcpu</td>
<td>1</td>
<td>2</td>
<td>2</td>
<td></td>
</tr><tr>
<td>xlarge.disk</td>
<td>1</td>
<td>4</td>
<td>16</td>
<td></td>
</tr><tr>
<td>xlarge</td>
<td>1</td>
<td>4</td>
<td>16</td>
<td></td>
</tr><tr>
<td>medium.mem</td>
<td>1</td>
<td>1</td>
<td>6</td>
<td></td>
</tr><tr>
<td>large.disk</td>
<td>1</td>
<td>2</td>
<td>8</td>
<td></td>
</tr><tr>
<th rowspan=2><%= vars.ops_manager %></th>
<td>large.disk</td>
<td>1</td>
<td>2</td>
<td>8</td>
<td></td>
</tr><tr>
<td>large.cpu</td>
<td>4</td>
<td>4</td>
<td>4</td>
<td></td>
</tr>
</table>
* **<%= vars.k8s_runtime_abbr %>:** See [GCP Prerequisites and Resource Requirements](https://docs.pivotal.io/tkgi/gcp-requirements.html).
* (<%= vars.app_runtime_abbr %>-only) Your GCP project must have sufficient quota to deploy all the VMs needed to install <%= vars.platform_name %> with <%= vars.app_runtime_abbr %>. For a list of suggested quotas, see [Recommended GCP Quotas](./gcp-quotas.html).
## <a id="prerequisites"></a> Prerequisites
To install <%= vars.platform_name %> on GCP, you must do the following:
* Install the Google Cloud SDK on your machine and authenticate it to your GCP account. To download the Google Cloud SDK, see [Google Cloud SDK](https://cloud.google.com/sdk/).
* Increase or remove the VM instance limits in your GCP account. For VM instance requirements, see [GCP Resource Requirements](#gcp-requirements).
* <a name="#env_account"></a> Update your GCP account with the following required permissions:
* The following permissions are required to create firewalls, networks, load balancers, and other resources:
* **Compute Engine** > **Compute Instances Admin (beta)**
* **Compute Engine** > **Compute Network Admin**
* **Compute Engine** > **Compute Security Admin**
* To use Google Cloud Storage (GCS) for Cloud Controller file storage, the following permission is required to create buckets:
* **Storage** > **Storage Admin**
* To use Cloud DNS, the following permission is required to add and modify DNS entries:
* **Project** > **Owner**
* Create an SSL certificate for your <%= vars.platform_name %> domain.
<p class="note"><b>Note: </b>To deploy <%= vars.platform_name %> to a production environment, you must obtain a certificate from a certificate authority. <%= vars.company_name %> recommends using a self-signed certificate generated by <%= vars.ops_manager %> for development and testing purposes only.</p>
* Assign administrative rights to a domain for <%= vars.platform_name %>. You need to be able to add wildcard records to this domain.
* Create a wildcard DNS record that points to your router or load balancer. Alternatively, you can use a service such as xip.io. For example, `203.0.113.0.xip.io`. Then, create at least one wildcard TLS certificate that matches the DNS record you configured.
<p class="note"><b>Note: </b> With a wildcard DNS record, every hostname in your domain resolves to the IP address of your router or load balancer. For example, if you create a DNS record `*.example.com` pointing to your router, every app deployed to the `example.com` domain resolves to the IP address of your router.</p>
* Create one or more NTP servers, if the NTP servers are not already provided by your GCP project.
* Install the most recent version of one of the following CLIs, depending on your runtime:
* **<%= vars.app_runtime_abbr %>:** The Cloud Foundry Command Line Interface (cf CLI). See [Cloud Foundry Command Line Interface](https://github.com/cloudfoundry/cli#downloads) in GitHub.
* **<%= vars.k8s_runtime_abbr %>:** The <%= vars.k8s_runtime_abbr %> CLI. See [Installing the <%= vars.k8s_runtime_abbr %> CLI](https://docs.pivotal.io/tkgi/installing-cli.html).
* **(<%= vars.app_runtime_abbr %>-only)** Request a quota increase for your GCP project. For GCP quota requirements, see [GCP Resource Requirements](#gcp-requirements). To request an increase, see [Quotas](https://console.cloud.google.com/iam-admin/quotas) in the GCP console.
* **(<%= vars.app_runtime_abbr %>-only)** Configure sufficient IP allocation. For more information about IP allocation requirements, see [<%= vars.app_runtime_abbr %> Resource Requirements](#pas) above.
* **(Optional)** **(<%= vars.app_runtime_abbr %>-only)** Configure external storage. <%= vars.company_name %> recommends using external storage if possible. For more information about how file storage location affects platform performance and stability during upgrades, see [Configure File Storage](https://docs.pivotal.io/application-service/<%= vars.current_major_version %>/operating/configuring.html#file-storage) in _Configuring <%= vars.app_runtime_abbr %> for Upgrades_.
* **(Optional)** **(<%= vars.app_runtime_abbr %> and <%= vars.ops_manager %>-only)** Configure external databases. <%= vars.company_name %> recommends using external databases in production deployments for BOSH Director and <%= vars.app_runtime_abbr %>. An external database must be configured to use the UTC timezone.
* **(Optional)** **(<%= vars.app_runtime_abbr %> and <%= vars.ops_manager %>-only)** Configure external user stores. When you deploy <%= vars.platform_name %>, you can select a SAML user store for <%= vars.ops_manager %> or a SAML or LDAP user store for <%= vars.app_runtime_abbr %>, to integrate existing user accounts.
## <a id="install"></a> Install <%= vars.platform_name %> on GCP
You can install <%= vars.platform_name %> on GCP either manually or using Terraform.
To install <%= vars.platform_name %> on GCP, do one of the following:
* Install <%= vars.platform_name %> on GCP manually. See [Installing <%= vars.platform_name %> on GCP Manually](./gcp-manual.html).
* Install <%= vars.platform_name %> on GCP using Terraform. See [Install <%= vars.platform_name %> on GCP Using Terraform](./gcp-terraform.html).
## <a id="resources"></a> Additional Resources
The following are additional resources related to installing <%= vars.platform_name %> on GCP:
- For general authentication guidelines for GCP, see [GCP authentication documentation](https://cloud.google.com/docs/authentication).
- For more information about troubleshooting the <%= vars.platform_name %> on GCP infrastructure, see [Troubleshooting <%= vars.platform_name %> on GCP](./gcp-troubleshooting.html).
- For production-level deployment options for <%= vars.platform_name %> on GCP, see [Reference Architecture for <%= vars.platform_name %> on GCP](../plan/gcp/gcp_ref_arch.html).
- For general certificate requirements for deploying <%= vars.platform_name %>, see [Certificate Requirements](../adminguide/securing-traffic.html#certtypes).