-
Notifications
You must be signed in to change notification settings - Fork 34
Reorg info about using and configuring Embedded Cluster #3842
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
Merged
Merged
Changes from all commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
7d1fbfa
Reorg info about using and configuring Embedded Cluster
paigecalvert 42f6bdb
Merge branch 'main' into 134340
paigecalvert ccd82bf
edits to steps on configuring ec
paigecalvert 2e3411c
fix anchor links
paigecalvert 983dadb
Merge branch 'main' into 134340
paigecalvert c9a652f
update reset procedures with the latest
paigecalvert b924ce5
fix anchors
paigecalvert 29f719a
edit the instructions to add the config
paigecalvert File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,10 +1,21 @@ | ||
| import HaArchitecture from "../partials/embedded-cluster/_multi-node-ha-arch.mdx" | ||
| import ShellCommand from "../partials/embedded-cluster/_shell-command.mdx" | ||
|
|
||
| # Manage Multi-Node Clusters with Embedded Cluster | ||
| # Access and Manage Embedded Clusters | ||
|
|
||
| This topic describes managing nodes in clusters created with Replicated Embedded Cluster, including how to add nodes and enable high-availability for multi-node clusters. | ||
|
|
||
| ## Limitations | ||
| ## Access the Cluster | ||
|
|
||
| With Embedded Cluster, end users rarely need to use the CLI. Typical workflows, like updating the application and the cluster, can be done through the Admin Console. However, there are times when vendors or their customers need to use the CLI for development or troubleshooting. | ||
|
|
||
| <ShellCommand/> | ||
|
|
||
| ## Configure Multi-Node Clusters | ||
|
|
||
| This section describes how to join nodes to a cluster with Embedded Cluster. | ||
|
|
||
| ### Limitations | ||
|
|
||
| Multi-node clusters with Embedded Cluster have the following limitations: | ||
|
|
||
|
|
@@ -18,11 +29,11 @@ Multi-node clusters with Embedded Cluster have the following limitations: | |
|
|
||
| * The `join print-command` command always returns the commands for joining a node with the controller role. It does not support printing the join command for any custom node roles defined in the Embedded Cluster Config `roles` key. See [Automate Controller Node Joins](#automate-node-joins) below. | ||
|
|
||
| ## Requirement | ||
| ### Requirement | ||
|
|
||
| To deploy multi-node clusters with Embedded Cluster, the **Multi-node Cluster (Embedded Cluster only)** license field must be enabled for the customer. For more information about managing customer licenses, see [Create and Manage Customers](/vendor/releases-creating-customer). | ||
|
|
||
| ## Add Nodes to a Cluster {#add-nodes} | ||
| ### Add Nodes to a Cluster {#add-nodes} | ||
|
|
||
| This section describes how to add nodes to a cluster with Embedded Cluster. | ||
|
|
||
|
|
@@ -62,7 +73,7 @@ To add a node to a cluster with Embedded Cluster: | |
|
|
||
| 1. Repeat these steps for each node you want to add. | ||
|
|
||
| ## Automate Controller Node Joins {#automate-node-joins} | ||
| ### Automate Controller Node Joins {#automate-node-joins} | ||
|
|
||
| With Embedded Cluster, you can use the command line to get the commands for joining controller nodes, rather than having to log into the Admin Console UI to get the commands. This is especially useful when testing multi-node Embedded Cluster installations where you need to automate the process of joining controller nodes to a cluster. | ||
|
|
||
|
|
@@ -89,7 +100,7 @@ To automate controller node joins with Embedded Cluster: | |
|
|
||
| 1. On the node that you want to join as a controller, run each of the commands provided in the `join print-command` output to download the Embedded Cluster binary, extract the binary, and join the node to the cluster. | ||
|
|
||
| ## High Availability for Multi-Node Clusters {#ha} | ||
| ## Configure High Availability for Multi-Node Clusters {#ha} | ||
|
|
||
| Multi-node clusters are not highly available by default. The first node of the cluster holds important data for Kubernetes and KOTS, such that the loss of this node would be catastrophic for the cluster. Enabling high availability requires that at least three controller nodes are present in the cluster. | ||
|
|
||
|
|
@@ -156,4 +167,69 @@ To enable high availability for an existing Embedded Cluster installation with t | |
| sudo ./APP_SLUG enable-ha | ||
| ``` | ||
|
|
||
| Where `APP_SLUG` is the unique slug for the application. | ||
| Where `APP_SLUG` is the unique slug for the application. | ||
|
|
||
| ## Reset Nodes and Remove Clusters | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. moved the procedures on resetting nodes to this Access and Manage page |
||
|
|
||
| This section describes how to reset individual nodes and how to delete an entire multi-node cluster using the Embedded Cluster [reset](/reference/embedded-cluster-reset) command. | ||
|
|
||
| ### About the `reset` Command | ||
|
|
||
| Resetting a node with Embedded Cluster removes the cluster and your application from that node. This is useful for iteration, development, and when mistakes are made because you can reuse the machine instead of having to procure a new one. | ||
|
|
||
| The `reset` command performs the following steps: | ||
|
|
||
| 1. Run safety checks. For example, `reset` does not remove a controller node when there are workers nodes available. And, it does not remove a node when the etcd cluster is unhealthy. | ||
| 1. Drain the node and evict all the Pods gracefully | ||
| 1. Delete the node from the cluster | ||
| 1. Stop and reset k0s | ||
| 1. Remove all Embedded Cluster files | ||
| 1. Reboot the node | ||
|
|
||
| For more information about the command, see [reset](/reference/embedded-cluster-reset). | ||
|
|
||
| ### Limitations and Best Practices | ||
|
|
||
| Before you reset a node or remove a cluster, consider the following limitations and best practices: | ||
|
|
||
| * When you reset a node, OpenEBS PVCs on the node are deleted. Only PVCs created as part of a StatefulSet are recreated automatically on another node in the cluster. To recreate other PVCs, redeploy the application in the cluster. | ||
|
|
||
| * If you need to reset one controller node in a three-node cluster, first join a fourth controller node to the cluster before removing the target node. This ensures that you maintain a minimum of three nodes for the Kubernetes control plane. You can add and remove worker nodes as needed because they do not have any control plane components. | ||
|
|
||
| * When resetting a single node or deleting a test environment, you can include the `--force` flag with the `reset` command to ignore any errors. | ||
|
|
||
| * When removing a multi-node cluster, run `reset` on each of the worker nodes first. Then, run `reset` on controller nodes. Controller nodes also remove themselves from etcd membership. | ||
|
|
||
| ### Reset a Node | ||
|
|
||
| To reset a node: | ||
|
|
||
| 1. SSH onto the node. Ensure that the Embedded Cluster binary is still available on the machine. | ||
|
|
||
| 1. Run the following command to remove the node and reboot the machine: | ||
|
|
||
| ```bash | ||
| sudo ./APP_SLUG reset | ||
| ``` | ||
| Where `APP_SLUG` is the unique slug for the application. | ||
|
|
||
| ### Remove a Multi-Node Cluster | ||
|
|
||
| To remove a multi-node cluster: | ||
|
|
||
| 1. SSH onto a worker node. | ||
|
|
||
| :::note | ||
| The safety checks for the `reset` command prevent you from removing a controller node when there are still worker nodes available in the cluster. | ||
| ::: | ||
|
|
||
| 1. Remove the node and reboot the machine: | ||
|
|
||
| ```bash | ||
| sudo ./APP_SLUG reset | ||
| ``` | ||
| Where `APP_SLUG` is the unique slug for the application. | ||
|
|
||
| 1. After removing all the worker nodes in the cluster, SSH onto a controller node and run the `reset` command to remove the node. | ||
|
|
||
| 1. Repeat the previous step on the remaining controller nodes in the cluster. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
moved "Access the Cluster" and "Reset a Node" from the old "Using Embedded Cluster" page (which is now focused on configuring Embedded Cluster)