You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This topic lists the installation requirements for Replicated Embedded Cluster. Ensure that the installation environment meets these requirements before attempting to install.
This topic describes the requirements for installing applications with Replicated KOTS. It includes requirements for installing KOTS in existing clusters and in clusters created with Replicated Embedded Cluster or Replicated kURL.
7
+
This topic describes the requirements for installing in a Kubernetes cluster with Replicated KOTS.
9
8
10
9
:::note
11
10
This topic does not include any requirements specific to the application. Ensure that you meet any additional requirements for the application before installing.
@@ -34,15 +33,11 @@ Replicated recommends using a version of KOTS that is compatible with Kubernetes
34
33
35
34
<KubernetesCompatibility/>
36
35
37
-
## Existing Cluster Requirements
36
+
## Minimum System Requirements
38
37
39
-
To install KOTS in an existing cluster, your environment must meet the following minimum requirements.
38
+
To install KOTS in an existing cluster, your environment must meet the following minimum requirements:
40
39
41
-
### Minimum System Requirements
42
-
43
-
To install the Admin Console on an existing cluster, the cluster must meet the following requirements:
44
-
45
-
***Admin console minimum requirements**: Existing clusters that have LimitRanges specified must support the following minimum requirements for the Admin Console:
40
+
***KOTS Admin Console minimum requirements**: Clusters that have LimitRanges specified must support the following minimum requirements for the Admin Console:
46
41
47
42
***CPU resources and memory**: The Admin Console pod requests 100m CPU resources and 100Mi memory.
48
43
@@ -65,8 +60,11 @@ To install the Admin Console on an existing cluster, the cluster must meet the f
65
60
***Kubernetes version compatibility**: The version of Kubernetes running on the cluster must be compatible with the version of KOTS that you use to install the application. This compatibility requirement does not include any specific and additional requirements defined by the software vendor for the application.
66
61
67
62
For more information about the versions of Kubernetes that are compatible with each version of KOTS, see [Kubernetes Version Compatibility](#kubernetes-version-compatibility) above.
63
+
68
64
***OpenShift version compatibility**: For Red Hat OpenShift clusters, the version of OpenShift must use a supported Kubernetes version. For more information about supported Kubernetes versions, see [Kubernetes Version Compatibility](#kubernetes-version-compatibility) above.
65
+
69
66
***Storage class**: The cluster must have an existing storage class available. For more information, see [Storage Classes](https://kubernetes.io/docs/concepts/storage/storage-classes/) in the Kubernetes documentation.
67
+
70
68
***Port forwarding**: To support port forwarding, Kubernetes clusters require that the SOcket CAT (socat) package is installed on each node.
71
69
72
70
If the package is not installed on each node in the cluster, you see the following error message when the installation script attempts to connect to the Admin Console: `unable to do port forwarding: socat not found`.
@@ -75,23 +73,23 @@ To install the Admin Console on an existing cluster, the cluster must meet the f
75
73
76
74
If the output of the `which socat` command is `socat not found`, then you must install the package that provides the socat command. The name of this package can vary depending on the node's operating system.
77
75
78
-
###RBAC Requirements
76
+
## RBAC Requirements
79
77
80
78
The user that runs the installation command must have at least the minimum role-based access control (RBAC) permissions that are required by KOTS. If the user does not have the required RBAC permissions, then an error message displays: `Current user has insufficient privileges to install Admin Console`.
81
79
82
80
The required RBAC permissions vary depending on if the user attempts to install KOTS with cluster-scoped access or namespace-scoped access:
By default, KOTS requires cluster-scoped access. With cluster-scoped access, a Kubernetes ClusterRole and ClusterRoleBinding are created that grant KOTS access to all resources across all namespaces in the cluster.
89
87
90
88
To install KOTS with cluster-scoped access, the user must meet the following RBAC requirements:
91
89
* The user must be able to create workloads, ClusterRoles, and ClusterRoleBindings.
92
90
* The user must have cluster-admin permissions to create namespaces and assign RBAC roles across the cluster.
KOTS can be installed with namespace-scoped access rather than the default cluster-scoped access. With namespace-scoped access, a Kubernetes Role and RoleBinding are automatically created that grant KOTS permissions only in the namespace where it is installed.
97
95
@@ -100,8 +98,14 @@ Depending on the application, namespace-scoped access for KOTS is required, opti
100
98
:::
101
99
102
100
To install or upgrade KOTS with namespace-scoped access, the user must have _one_ of the following permission levels in the target namespace:
101
+
* Wildcard Permissions (Default)
102
+
* Minimum KOTS RBAC Permissions
103
103
104
-
***Wildcard permissions (Default)**: By default, when namespace-scoped access is enabled, KOTS attempts to automatically create the following Role to acquire wildcard (`* * *`) permissions in the target namespace:
104
+
See the sections below for more information.
105
+
106
+
#### Wildcard Permissions (Default)
107
+
108
+
By default, when namespace-scoped access is enabled, KOTS attempts to automatically create the following Role to acquire wildcard (`* * *`) permissions in the target namespace:
105
109
106
110
```yaml
107
111
apiVersion: "rbac.authorization.k8s.io/v1"
@@ -116,7 +120,9 @@ To install or upgrade KOTS with namespace-scoped access, the user must have _one
116
120
117
121
To support this default behavior, the user must also have `* * *` permissions in the target namespace.
118
122
119
-
* **Minimum KOTS RBAC permissions**: In some cases, it is not possible to grant the user `* * *` permissions in the target namespace. For example, an organization might have security policies that prevent this level of permissions.
123
+
#### Minimum KOTS RBAC Permissions
124
+
125
+
In some cases, it is not possible to grant the user `* * *` permissions in the target namespace. For example, an organization might have security policies that prevent this level of permissions.
120
126
121
127
If the user installing or upgrading KOTS cannot be granted `* * *` permissions in the namespace, then they can instead request the minimum RBAC permissions required by KOTS. Using the minimum KOTS RBAC permissions also requires manually creating a ServiceAccount, Role, and RoleBinding for KOTS, rather than allowing KOTS to automatically create a Role with `* * *` permissions.
122
128
@@ -250,89 +256,20 @@ To install or upgrade KOTS with namespace-scoped access, the user must have _one
250
256
After manually creating these RBAC resources, the user must include both the `--ensure-rbac=false` and `--skip-rbac-check` flags when installing or upgrading. These flags prevent KOTS from checking for or attempting to create a Role with `* * *` permissions in the namespace. For more information, see [Prerequisites](installing-existing-cluster#prerequisites) in _Online Installation in Existing Clusters_.
251
257
:::
252
258
253
-
## Embedded Cluster Requirements
254
-
255
-
To install with the Embedded Cluster installer, your environment must meet the following requirements.
256
-
257
-
### System Requirements
258
-
259
-
<EmbeddedClusterRequirements/>
260
-
261
-
### Port Requirements
262
-
263
-
<EmbeddedClusterPortRequirements/>
264
-
265
-
## kURL Requirements {#kurl-requirements}
266
-
267
-
To install with kURL, your environment must meet the following requirements.
268
-
269
-
### Minimum System Requirements
270
-
271
-
* 4 CPUs or equivalent per machine
272
-
* 8GB of RAM per machine
273
-
* 40GB of disk space per machine
274
-
* TCP ports 2379, 2380, 6443, 6783, and 10250 open between cluster nodes
275
-
* UDP port 8472 open between cluster nodes
276
-
277
-
:::note
278
-
If the Kubernetes installer specification uses the deprecated kURL [Weave add-on](https://kurl.sh/docs/add-ons/weave), UDP ports 6783 and 6784 must be open between cluster nodes. Reach out to your software vendor for more information.
279
-
:::
259
+
## Compatible Image Registries
280
260
281
-
* Root access is required
282
-
* (Rook Only) The Rook add-on version 1.4.3 and later requires block storage on each node in the cluster. For more information about how to enable block storage for Rook, see [Block Storage](https://kurl.sh/docs/add-ons/rook/#block-storage) in _Rook Add-On_ in the kURL documentation.
261
+
This section describes the requirements for using a local private image regsitry when performing air gap installations with KOTS.
283
262
284
-
### Additional System Requirements
285
-
286
-
You must meet the additional kURL system requirements when applicable:
287
-
288
-
-**Supported Operating Systems**: For supported operating systems, see [Supported Operating Systems](https://kurl.sh/docs/install-with-kurl/system-requirements#supported-operating-systems) in the kURL documentation.
289
-
290
-
-**kURL Dependencies Directory**: kURL installs additional dependencies in the directory /var/lib/kurl and the directory requirements must be met. See [kURL Dependencies Directory](https://kurl.sh/docs/install-with-kurl/system-requirements#kurl-dependencies-directory) in the kURL documentation.
291
-
292
-
-**Networking Requirements**: Networking requirements include firewall openings, host firewalls rules, and port availability. See [Networking Requirements](https://kurl.sh/docs/install-with-kurl/system-requirements#networking-requirements) in the kURL documentation.
293
-
294
-
-**High Availability Requirements**: If you are operating a cluster with high availability, see [High Availability Requirements](https://kurl.sh/docs/install-with-kurl/system-requirements#high-availability-requirements) in the kURL documentation.
295
-
296
-
-**Cloud Disk Performance**: For a list of cloud VM instance and disk combinations that are known to provide sufficient performance for etcd and pass the write latency preflight, see [Cloud Disk Performance](https://kurl.sh/docs/install-with-kurl/system-requirements#cloud-disk-performance) in the kURL documentation.
297
-
298
-
299
-
## Private Registry Requirements
300
-
301
-
This section describes the requirements for using a private image regsitry for KOTS installations.
302
-
303
-
### About Using a Private Registry
304
-
305
-
A private image registry is required for air gap installations. For air gap installations in existing clusters, you must provide credentials for a compatible private registry during installation.
306
-
307
-
For air gap installations in kURL clusters, the kURL installer automatically uses the registry add-on to meet the private registry requirement. For more information, see [Registry Add-on](https://kurl.sh/docs/add-ons/registry) in the kURL documentation.
263
+
A private image registry is required for air gap installations with KOTS in existing clusters. You provide the credentials for a compatible private registry during installation. You can also optionally configure a local private image registry for use with KOTS installations in online (internet-connected) environments.
308
264
309
265
Private registry settings can be changed at any time. For more information, see [Using Private Registries](image-registry-settings).
310
266
311
-
### Compatible Registries
267
+
312
268
313
269
KOTS has been tested for compatibility with the following registries:
314
270
315
271
<DockerCompatibility/>
316
272
317
273
## Firewall Openings for Online Installations
318
274
319
-
The domains for the services listed in the table below need to be accessible from servers performing online installations. No outbound internet access is required for air gapped installations.
320
-
321
-
For services hosted at domains owned by Replicated, the table below includes a link to the list of IP addresses for the domain at [replicatedhq/ips](https://github.com/replicatedhq/ips/blob/main/ip_addresses.json) in GitHub. Note that the IP addresses listed in the `replicatedhq/ips` repository also include IP addresses for some domains that are _not_ required for installation.
322
-
323
-
For third-party services hosted at domains not owned by Replicated, the table below lists the required domains. Consult the third-party's documentation for the IP address range for each domain, as needed.
| Docker Hub | Not Required | Required | Required | Some dependencies of KOTS are hosted as public images in Docker Hub. The required domains for this service are `index.docker.io`, `cdn.auth0.com`, `*.docker.io`, and `*.docker.com.`|
328
-
|`replicated.app`| Required | Required | Required | <p>Upstream application YAML and metadata is pulled from `replicated.app`. The current running version of the application (if any), as well as a license ID and application ID to authenticate, are all sent to `replicated.app`. This domain is owned by Replicated, Inc., which is headquartered in Los Angeles, CA.</p> <p>For the range of IP addresses for `replicated.app`, see [replicatedhq/ips](https://github.com/replicatedhq/ips/blob/main/ip_addresses.json#L60-L65) in GitHub.</p> |
329
-
|`proxy.replicated.com`| Required | Required*| Required*| <p>Private Docker images are proxied through `proxy.replicated.com`. This domain is owned by Replicated, Inc., which is headquartered in Los Angeles, CA.</p> <p>For the range of IP addresses for `proxy.replicated.com`, see [replicatedhq/ips](https://github.com/replicatedhq/ips/blob/main/ip_addresses.json#L52-L57) in GitHub.</p> |
330
-
| `registry.replicated.com` | Required** | Required** | Required** | <p>Some applications host private images in the Replicated registry at this domain. The on-prem docker client uses a license ID to authenticate to `registry.replicated.com`. This domain is owned by Replicated, Inc which is headquartered in Los Angeles, CA.</p><p> For the range of IP addresses for `registry.replicated.com`, see [replicatedhq/ips](https://github.com/replicatedhq/ips/blob/main/ip_addresses.json#L20-L25) in GitHub.</p>
331
-
|`kots.io`| Not Required | Required | Not Required | Requests are made to this domain when installing the Replicated KOTS CLI. This domain is owned by Replicated, Inc., which is headquartered in Los Angeles, CA.|
332
-
|`github.com `| Not Required | Required | Not Required | Requests are made to this domain when installing the Replicated KOTS CLI. For information about retrieving GitHub IP addresses, see [About GitHub's IP addresses](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/about-githubs-ip-addresses) in the GitHub documentation. |
333
-
|`k8s.kurl.sh`<br/>`s3.kurl.sh`| Not Required | Not Required | Required | <p>kURL installation scripts and artifacts are served from [kurl.sh](https://kurl.sh). An application identifier is sent in a URL path, and bash scripts and binary executables are served from kurl.sh. This domain is owned by Replicated, Inc., which is headquartered in Los Angeles, CA.</p><p> For the range of IP addresses for `k8s.kurl.sh`, see [replicatedhq/ips](https://github.com/replicatedhq/ips/blob/main/ip_addresses.json#L34-L39) in GitHub.</p><p> The range of IP addresses for `s3.kurl.sh` are the same as IP addresses for the `kurl.sh` domain. For the range of IP address for `kurl.sh`, see [replicatedhq/ips](https://github.com/replicatedhq/ips/blob/main/ip_addresses.json#L28-L31) in GitHub.</p> |
334
-
|`amazonaws.com`| Not Required | Not Required | Required |`tar.gz` packages are downloaded from Amazon S3 during installations with kURL. For information about dynamically scraping the IP ranges to allowlist for accessing these packages, see [AWS IP address ranges](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html#aws-ip-download) in the AWS documentation.|
335
-
336
-
* Required only if the application uses the Replicated proxy registry. Contact your software vendor for more information.
337
-
338
-
** Required only if the application uses the Replicated registry. Contact your software vendor for more information.
This topic lists the installation requirements for Replicated kURL. Ensure that the installation environment meets these requirements before attempting to install.
6
+
7
+
## Minimum System Requirements
8
+
9
+
* 4 CPUs or equivalent per machine
10
+
* 8GB of RAM per machine
11
+
* 40GB of disk space per machine
12
+
* TCP ports 2379, 2380, 6443, 6783, and 10250 open between cluster nodes
13
+
* UDP port 8472 open between cluster nodes
14
+
15
+
:::note
16
+
If the Kubernetes installer specification uses the deprecated kURL [Weave add-on](https://kurl.sh/docs/add-ons/weave), UDP ports 6783 and 6784 must be open between cluster nodes. Reach out to your software vendor for more information.
17
+
:::
18
+
19
+
* Root access is required
20
+
* (Rook Only) The Rook add-on version 1.4.3 and later requires block storage on each node in the cluster. For more information about how to enable block storage for Rook, see [Block Storage](https://kurl.sh/docs/add-ons/rook/#block-storage) in _Rook Add-On_ in the kURL documentation.
21
+
22
+
## Additional System Requirements
23
+
24
+
You must meet the additional kURL system requirements when applicable:
25
+
26
+
-**Supported Operating Systems**: For supported operating systems, see [Supported Operating Systems](https://kurl.sh/docs/install-with-kurl/system-requirements#supported-operating-systems) in the kURL documentation.
27
+
28
+
-**kURL Dependencies Directory**: kURL installs additional dependencies in the directory /var/lib/kurl and the directory requirements must be met. See [kURL Dependencies Directory](https://kurl.sh/docs/install-with-kurl/system-requirements#kurl-dependencies-directory) in the kURL documentation.
29
+
30
+
-**Networking Requirements**: Networking requirements include firewall openings, host firewalls rules, and port availability. See [Networking Requirements](https://kurl.sh/docs/install-with-kurl/system-requirements#networking-requirements) in the kURL documentation.
31
+
32
+
-**High Availability Requirements**: If you are operating a cluster with high availability, see [High Availability Requirements](https://kurl.sh/docs/install-with-kurl/system-requirements#high-availability-requirements) in the kURL documentation.
33
+
34
+
-**Cloud Disk Performance**: For a list of cloud VM instance and disk combinations that are known to provide sufficient performance for etcd and pass the write latency preflight, see [Cloud Disk Performance](https://kurl.sh/docs/install-with-kurl/system-requirements#cloud-disk-performance) in the kURL documentation.
0 commit comments