Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Embedded Cluster single-node and mutli-node architecture diagrams #2967

Merged
merged 13 commits into from
Jan 24, 2025

Conversation

paigecalvert
Copy link
Contributor

@paigecalvert paigecalvert commented Jan 14, 2025

@paigecalvert paigecalvert requested a review from a team as a code owner January 14, 2025 20:37
Copy link

netlify bot commented Jan 14, 2025

Deploy Preview for replicated-docs ready!

Name Link
🔨 Latest commit 37dd95a
🔍 Latest deploy log https://app.netlify.com/sites/replicated-docs/deploys/6793c525ef69940008c001f2
😎 Deploy Preview https://deploy-preview-2967--replicated-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link

netlify bot commented Jan 14, 2025

Deploy Preview for replicated-docs-upgrade ready!

Name Link
🔨 Latest commit 37dd95a
🔍 Latest deploy log https://app.netlify.com/sites/replicated-docs-upgrade/deploys/6793c5259952e000084944cf
😎 Deploy Preview https://deploy-preview-2967--replicated-docs-upgrade.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@replicated-ci replicated-ci added type::docs Improvements or additions to documentation type::feature labels Jan 14, 2025
import EmbeddedClusterPortRequirements from "../partials/embedded-cluster/_port-reqs.mdx"

# Using Embedded Cluster
# Embedded Cluster Overview
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved the intro material like overview, architecture, reqs, and to a new Overview topic. The "Using Embedded Cluster" was reaching a critical mass (still need to break that page up more, but this seemed like a good start rather than continuing to pile on)


[View a larger version of this image](/images/embedded-cluster-install.png)
### Single-Node Architecture
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added single- and multi- node diagrams. My thought was that this would make it easier to see at a glance what aspects of EC installs are specific to single versus multi node installs. For example, if we just showed multi-node, then the question might be, "are these components deployed in this way specifically because it's multi-node, or would it look like this for single node too?"

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.

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.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

^ just called out multi-node specific points/the pieces that are distinct from single-node installs

@@ -75,241 +105,4 @@ Embedded Cluster has the following limitations:

* **Policy enforcement on Embedded Cluster workloads is not supported**: The Embedded Cluster runs workloads that require higher levels of privilege. If your application installs a policy enforcement engine such as Gatekeeper or Kyverno, ensure that its policies are not enforced in the namespaces used by Embedded Cluster.

* **Installing on STIG- and CIS-hardened OS images is not supported**: Embedded Cluster isn't tested on these images, and issues have arisen when trying to install on them.

## Quick Start
Copy link
Contributor Author

@paigecalvert paigecalvert Jan 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

^ As mentioned above, moved everything from here down over to a new embedded-using topic, which gets the same "Using Embedded Cluster" page title that exists today

NOTE: I still need to update xrefs before merging


[View a larger version of this image](/images/embedded-architecture-single-node.png)

As shown in the diagram above, 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`).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it worth explaining what this .tgz is, like that you download all the assets for installing? maybe sefl-explanatory, I don't know

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah couldn't hurt!

docs/vendor/embedded-overview.mdx Show resolved Hide resolved
docs/vendor/embedded-overview.mdx Outdated Show resolved Hide resolved
docs/vendor/embedded-overview.mdx Show resolved Hide resolved
ajp-io
ajp-io previously approved these changes Jan 24, 2025
Copy link
Member

@ajp-io ajp-io left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm good with this. I could see an argument for just saying "node" instead of "controller worker node" since you can have controller workers and just workers, depending on the node roles you define. and that seems more in depth than we're trying to show right now in this diagram.

@paigecalvert
Copy link
Contributor Author

@ajp-io Yeah I went back and forth on that...I landed on controller worker for all of them since this particular diagram happens to show a 3-node cluster, and if you are theoretically doing HA (which I know isn't show in this diagram either), having 3 controller nodes is necessary. I thought maybe showing one controller with two workers (or something like that) would be misleading since idk if we want to imply that that's a good pattern to follow. Not sure if that's sound logic, but just to give context :)

@ajp-io
Copy link
Member

ajp-io commented Jan 24, 2025

It makes sense. And I think that's fine, unless we want to say that this architecture diagram isn't touching node roles like that, so we just say node to keep it generic.

@paigecalvert
Copy link
Contributor Author

@ajp-io true...you know what, I do think it might be better to just keep it generic since I don't explain what controller workers are in the description. Probably just invites confusion

@paigecalvert
Copy link
Contributor Author

I'll edit that in the diagrams then merge

@paigecalvert paigecalvert merged commit 909cbf1 into main Jan 24, 2025
5 checks passed
@paigecalvert paigecalvert deleted the 118299 branch January 24, 2025 16:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type::docs Improvements or additions to documentation type::feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants