Skip to content

Commit 6ee8c60

Browse files
authored
Merge pull request #3077 from replicatedhq/ec-v2-arch
Update EC Architecture Diagram to include Operator
2 parents 8fe1e3e + bc19b26 commit 6ee8c60

File tree

6 files changed

+50
-17
lines changed

6 files changed

+50
-17
lines changed

docs/enterprise/embedded-manage-nodes.mdx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import HaArchitecture from "../partials/embedded-cluster/_multi-node-ha-arch.mdx"
2+
13
# Managing Multi-Node Clusters with Embedded Cluster
24

35
The topic describes managing nodes in clusters created with Replicated Embedded Cluster, including how to add nodes and enable high-availability for multi-node clusters.
@@ -87,6 +89,12 @@ Multi-node clusters are not highly available by default. The first node of the c
8789
High availability for Embedded Cluster in an Alpha feature. This feature is subject to change, including breaking changes. To get access to this feature, reach out to Alex Parker at [[email protected]](mailto:[email protected]).
8890
:::
8991

92+
### HA Architecture
93+
94+
<HaArchitecture/>
95+
96+
For more information about the Embedded Cluster built-in extensions, see [Built-In Extensions](/vendor/embedded-overview#built-in-extensions) in _Embedded Cluster Overview_.
97+
9098
### Requirements
9199

92100
Enabling high availability has the following requirements:
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
The following diagram shows the architecture of an HA multi-node Embedded Cluster installation:
2+
3+
![Embedded Cluster multi-node architecture with high availability](/images/embedded-architecture-multi-node-ha.png)
4+
5+
[View a larger version of this image](/images/embedded-architecture-multi-node-ha.png)
6+
7+
As shown in the diagram above, in HA installations with Embedded Cluster:
8+
* A single replica of the Embedded Cluster Operator is deployed and runs on a controller node.
9+
* A single replica of the KOTS Admin Console is deployed and runs on a controller node.
10+
* Three replicas of rqlite are deployed in the kotsadm namespace. Rqlite is used by KOTS to store information such as support bundles, version history, application metadata, and other small amounts of data needed to manage the application.
11+
* For installations that include disaster recovery, the Velero pod is deployed on one node. The Velero Node Agent runs on each node in the cluster. The Node Agent is a Kubernetes DaemonSet that performs backup and restore tasks such as creating snapshots and transferring data during restores.
12+
* For air gap installations, two replicas of the air gap image registry are deployed.
13+
14+
Any Helm [`extensions`](/reference/embedded-config#extensions) that you include in the Embedded Cluster Config are installed in the cluster depending on the given chart and whether or not it is configured to be deployed with high availability.

docs/vendor/embedded-overview.mdx

Lines changed: 28 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import EmbeddedCluster from "../partials/embedded-cluster/_definition.mdx"
22
import Requirements from "../partials/embedded-cluster/_requirements.mdx"
33
import EmbeddedClusterPortRequirements from "../partials/embedded-cluster/_port-reqs.mdx"
4+
import HaArchitecture from "../partials/embedded-cluster/_multi-node-ha-arch.mdx"
45

56
# Embedded Cluster Overview
67

@@ -14,7 +15,7 @@ If you are instead looking for information about creating Kubernetes Installers
1415

1516
<EmbeddedCluster/>
1617

17-
{/* [V2 ARCHITECTURE CONTENT] ## Architecture and Built-In Extensions
18+
## Architecture
1819

1920
This section describes the Embedded Cluster architecture, including the built-in extensions deployed by Embedded Cluster.
2021

@@ -28,41 +29,51 @@ The following diagram shows the architecture of a single-node Embedded Cluster i
2829

2930
As shown in the diagram above, the user downloads the Embedded Cluster installation assets as a `.tgz` in their installation environment. These installation assets include the Embedded Cluster binary, the user's license file, and (for air gap installations) an air gap bundle containing the images needed to install and run the release in an environment with limited or no outbound internet access.
3031

31-
When the user runs the Embedded Cluster install command, the Embedded Cluster binary first installs the k0s cluster as a systemd service. This systemd service is named using the slug of the application (for example, `gitea`).
32+
When the user runs the Embedded Cluster install command, the Embedded Cluster binary first installs the k0s cluster as a systemd service.
3233

33-
After all the Kubernetes components for the cluster are available, the Embedded Cluster binary then installs the Embedded Cluster built-in extensions and any Helm extensions that were included in the [`extensions`](/reference/embedded-config#extensions) field of the Embedded Cluster Config. Each built-in extension is installed in its own namespace. The namespace or namespaces where Helm extensions are installed is defined by the vendor in the Embedded Cluster Config. */}
34+
After all the Kubernetes components for the cluster are available, the Embedded Cluster binary then installs the Embedded Cluster built-in extensions. For more information about these extensions, see [Built-In Extensions](#built-in-extensions) below.
3435

35-
## Embedded Cluster Built-In Extensions
36+
Any Helm extensions that were included in the [`extensions`](/reference/embedded-config#extensions) field of the Embedded Cluster Config are also installed. The namespace or namespaces where Helm extensions are installed is defined by the vendor in the Embedded Cluster Config.
3637

37-
Embedded Cluster deploys built-in extensions to provide capabilities such as application management and storage. These extensions are deployed by default and do not require configuration.
38+
Finally, Embedded Cluster also installs Local Artifact Mirror (LAM). In air gap installations, LAM is used to store and update images.
3839

39-
The built-in extensions include:
40+
### Multi-Node Architecture
4041

41-
* **KOTS:** Embedded Cluster installs the KOTS Admin Console in the kotsadm namespace. End customers use the Admin Console to configure and install the application. Rqlite is also installed in the kotsadm namespace alongside KOTS. Rqlite is a distributed relational database that uses SQLite as its storage engine. KOTS uses rqlite to store information such as support bundles, version history, application metadata, and other small amounts of data needed to manage the application. For more information about rqlite, see the [rqlite](https://rqlite.io/) website.
42+
The following diagram shows the architecture of a multi-node Embedded Cluster installation:
4243

43-
* **OpenEBS:** Embedded Cluster uses OpenEBS to provide local PersistentVolume (PV) storage, including the PV storage for rqlite used by KOTS. For more information, see the [OpenEBS](https://openebs.io/docs/) documentation.
44+
![Embedded Cluster multi-node architecture](/images/embedded-architecture-multi-node.png)
4445

45-
* **(Disaster Recovery Only) Velero:** If the installation uses the Embedded Cluster disaster recovery feature, Embedded Cluster installs Velero, which is an open-source tool that provides backup and restore functionality. For more information about Velero, see the [Velero](https://velero.io/docs/latest/) documentation. For more information about the disaster recovery feature, see [Disaster Recovery for Embedded Cluster (Alpha)](/vendor/embedded-disaster-recovery).
46+
[View a larger version of this image](/images/embedded-architecture-multi-node.png)
4647

47-
* **(Air Gap Only) Image registry:** For air gap installations in environments with limited or no outbound internet access, Embedded Cluster installs an image registry where the images required to install and run the application are pushed. For more information about installing in air-gapped environments, see [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap).
48+
As shown in the diagram above, in multi-node installations, the Embedded Cluster Operator, KOTS, and the image registry for air gap installations are all installed on one controller node.
4849

49-
{/* [V2 ARCHITECTURE CONTENT] Finally, after the built-in extensions and any Helm extensions are installed, The Embedded Cluster binary deploys a second systemd service on the node named `APP_SLUG-manager` (for example, `gitea-manager`). This manager service orchestrates Embedded Cluster and communicates with the KOTS instance running in the cluster through a websocket.
50+
For installations that include disaster recovery with Velero, the Velero Node Agent runs on each node in the cluster. The Node Agent is a Kubernetes DaemonSet that performs backup and restore tasks such as creating snapshots and transferring data during restores.
5051

51-
### Multi-Node Architecture
52+
Additionally, any Helm [`extensions`](/reference/embedded-config#extensions) that you include in the Embedded Cluster Config are installed in the cluster depending on the given chart and how it is configured to be deployed.
5253

53-
The following diagram shows the architecture of a multi-node Embedded Cluster installation for an application named `Gitea`:
54+
### Multi-Node Architecture with High Availability
5455

5556
:::note
5657
High availability (HA) for multi-node installations with Embedded Cluster is Alpha and is not enabled by default. For more informaiton about enabling HA, see [Enable High Availability for Multi-Node Clusters (Alpha)](/enterprise/embedded-manage-nodes#ha).
5758
:::
5859

59-
![Embedded Cluster multi-node architecture](/images/embedded-architecture-multi-node.png)
60+
<HaArchitecture/>
6061

61-
[View a larger version of this image](/images/embedded-architecture-multi-node.png)
62+
## Built-In Extensions {#built-in-extensions}
6263

63-
As shown in the diagram above, in multi-node installations, an instance of the Embedded Cluster manager systemd service runs on each node and communicates with the KOTS instance running on the primary node through a websocket. This allows Embedded Cluster and KOTS to manage installations where workloads are running on multiple nodes in a cluster.
64+
Embedded Cluster includes several built-in extensions. The built-in extensions provide capabilities such as application management and storage. Each built-in extension is installed in its own namespace.
6465

65-
Additionally, for installations that include disaster recovery with Velero, the Velero Node Agent also runs on each node in the cluster. The Node Agent is a Kubernetes DaemonSet that performs backup and restore tasks such as creating snapshots and transferring data during restores. */}
66+
The built-in extensions installed by Embedded Cluster include:
67+
68+
* **Embedded Cluster Operator**: The Operator is used for reporting purposes as well as some clean up operations.
69+
70+
* **KOTS:** Embedded Cluster installs the KOTS Admin Console in the kotsadm namespace. End customers use the Admin Console to configure and install the application. Rqlite is also installed in the kotsadm namespace alongside KOTS. Rqlite is a distributed relational database that uses SQLite as its storage engine. KOTS uses rqlite to store information such as support bundles, version history, application metadata, and other small amounts of data needed to manage the application. For more information about rqlite, see the [rqlite](https://rqlite.io/) website.
71+
72+
* **OpenEBS:** Embedded Cluster uses OpenEBS to provide local PersistentVolume (PV) storage, including the PV storage for rqlite used by KOTS. For more information, see the [OpenEBS](https://openebs.io/docs/) documentation.
73+
74+
* **(Disaster Recovery Only) Velero:** If the installation uses the Embedded Cluster disaster recovery feature, Embedded Cluster installs Velero, which is an open-source tool that provides backup and restore functionality. For more information about Velero, see the [Velero](https://velero.io/docs/latest/) documentation. For more information about the disaster recovery feature, see [Disaster Recovery for Embedded Cluster (Alpha)](/vendor/embedded-disaster-recovery).
75+
76+
* **(Air Gap Only) Image registry:** For air gap installations in environments with limited or no outbound internet access, Embedded Cluster installs an image registry where the images required to install and run the application are pushed. For more information about installing in air-gapped environments, see [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap).
6677

6778
## Comparison to kURL
6879

97.1 KB
Loading
15.4 KB
Loading
3.36 KB
Loading

0 commit comments

Comments
 (0)