-
Notifications
You must be signed in to change notification settings - Fork 31
HOLD FOR RELEASE: use cli to get commands for node joins #3216
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
Changes from 6 commits
fbf420a
be868a2
b5ad9c9
282dd0c
09dad27
1a345d0
97e73b0
35c7a40
d60e688
62b0af5
44cf317
656d8d0
88d096c
97cf782
f29fd7f
e569616
637d986
909dc7e
8a9e64b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -18,23 +18,19 @@ Multi-node clusters with Embedded Cluster have the following limitations: | |
|
|
||
| * Setting node roles with the Embedded Cluster Config [roles](/reference/embedded-config#roles) key is Beta. | ||
|
|
||
| ## Add Nodes to a Cluster (Beta) {#add-nodes} | ||
|
|
||
| You can add nodes to create a multi-node cluster in online (internet-connected) and air-gapped (limited or no outbound internet access) environments. The Admin Console provides the join command that you use to join nodes to the cluster. | ||
| * The `join print-command` command always returns the command 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. | ||
|
|
||
paigecalvert marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| :::note | ||
| Multi-node clusters are not highly available by default. For information about enabling high availability, see [Enable High Availability for Multi-Node Clusters (Alpha)](#ha) below. | ||
| ::: | ||
| ## Add Nodes to a Cluster (Beta) {#add-nodes} | ||
|
|
||
| To add nodes to a cluster: | ||
| To add a node to a cluster with Embedded Cluster: | ||
|
|
||
| 1. (Optional) In the Embedded Cluster Config, configure the `roles` key to customize node roles. For more information, see [roles](/reference/embedded-config#roles) in _Embedded Cluster Config_. When you are done, create and promote a new release with the updated Config. | ||
|
|
||
| 1. Do one of the following to get the join command from the Admin Console: | ||
| 1. Do one of the following: | ||
|
|
||
| 1. To add nodes during the application installation process, follow the steps in [Online Installation with Embedded Cluster](/enterprise/installing-embedded) or [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap) to install. A **Nodes** screen is displayed as part of the installation flow in the Admin Console that allows you to choose a node role and copy the relevant join command. | ||
| 1. Follow the steps in [Online Installation with Embedded Cluster](/enterprise/installing-embedded) or [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap) to install. A **Nodes** screen is displayed as part of the installation flow in the Admin Console that allows you to choose a node role and copy the relevant join command. | ||
|
|
||
| 1. Otherwise, if you have already installed the application: | ||
| 1. Otherwise, to add a node to an existing cluster: | ||
|
|
||
| 1. Log in to the Admin Console. | ||
|
|
||
|
|
@@ -44,27 +40,29 @@ To add nodes to a cluster: | |
|
|
||
| <img alt="Add node page in the Admin Console" src="/images/admin-console-add-node.png" width="600px"/> | ||
|
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. ^ removed out of date screenshot of admin console |
||
|
|
||
| [View a larger version of this image](/images/admin-console-add-node.png) | ||
| [View a larger version of this image](/images/admin-console-add-node.png) | ||
|
|
||
| 1. Either on the Admin Console **Nodes** screen that is displayed during installation or in the **Add a Node** dialog, select one or more roles for the new node that you will join. Copy the join command. | ||
| 1. Select one or more roles for the node. Copy the join command. | ||
|
|
||
| Note the following: | ||
|
|
||
| * If the Embedded Cluster Config [roles](/reference/embedded-config#roles) key is not configured, all new nodes joined to the cluster are assigned the `controller` role by default. The `controller` role designates nodes that run the Kubernetes control plane. Controller nodes can also run other workloads, such as application or Replicated KOTS workloads. | ||
|
|
||
| * The role cannot be changed after a node is added. If you need to change a node’s role, reset the node and add it again with the new role. | ||
|
|
||
| 1. Do one of the following to make the Embedded Cluster installation assets available on the machine that you will join to the cluster: | ||
| 1. Do one of the following to make the Embedded Cluster installation assets available on the node that you want to join to the cluster: | ||
|
|
||
| * **For online (internet-connected) installations**: SSH onto the machine that you will join. Then, use the same commands that you ran during installation to download and untar the Embedded Cluster installation assets on the machine. See [Online Installation with Embedded Cluster](/enterprise/installing-embedded). | ||
| * **For online (internet-connected) installations**: SSH onto the node that you want to join. Then, use the same commands that you ran during installation to download and untar the Embedded Cluster installation assets on the node. See [Online Installation with Embedded Cluster](/enterprise/installing-embedded). | ||
|
|
||
| * **For air gap installations with limited or no outbound internet access**: On a machine that has internet access, download the Embedded Cluster installation assets (including the air gap bundle) using the same command that you ran during installation. See [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap). Then, move the downloaded assets to the air-gapped machine that you will join, and untar. | ||
| * **For air gap installations with limited or no outbound internet access**: On a node that has internet access, download the Embedded Cluster installation assets (including the air gap bundle) using the same command that you ran during installation. See [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap). Then, move the downloaded assets to the air-gapped node that you want to join, and untar. | ||
|
|
||
| :::important | ||
| The Embedded Cluster installation assets on each node must all be the same version. If you use a different version than what is installed elsewhere in the cluster, the cluster will not be stable. To download a specific version of the Embedded Cluster assets, select a version in the **Embedded cluster install instructions** dialog. | ||
| ::: | ||
|
|
||
| 1. On the machine that you will join to the cluster, run the join command that you copied from the Admin Console. | ||
| 1. SSH onto the node that you want to join to the cluster. | ||
|
|
||
| 1. Run the join command that you copied. | ||
|
|
||
| **Example:** | ||
|
|
||
|
|
@@ -79,7 +77,30 @@ To add nodes to a cluster: | |
|
|
||
| 1. In the Admin Console, either on the installation **Nodes** screen or on the **Cluster Management** page, verify that the node appears. Wait for the node's status to change to Ready. | ||
|
|
||
| 1. Repeat these steps for each node you want to add. | ||
| 1. Repeat these steps for each node you want to add. | ||
|
|
||
| ## Automate Controller Node Joins (Beta) {#automate-node-joins} | ||
|
||
|
|
||
| With Embedded Cluster, you can use the command line to get the join command for controller nodes, rather than having to log into the Admin Console UI to get the command. 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. | ||
|
|
||
| To automate controller node joins with Embedded Cluster: | ||
|
|
||
| 1. On a node that is already joined to the cluster, run the following command to get the command for adding a controller node: | ||
|
|
||
| ```bash | ||
| sudo ./APP_SLUG join print-command | ||
| ``` | ||
paigecalvert marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| Where `APP_SLUG` is the unique application slug. | ||
|
|
||
| :::note | ||
| The `join print-command` command always returns the command 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. | ||
| ::: | ||
|
|
||
| 1. Copy the join command. | ||
|
|
||
| 1. SSH onto the node that you want to join as a controller. | ||
|
|
||
| 1. Run the join command that you copied. | ||
|
|
||
| ## High Availability for Multi-Node Clusters (Alpha) {#ha} | ||
|
|
||
|
|
@@ -125,9 +146,16 @@ To create a multi-node HA cluster: | |
|
|
||
| 1. Set up a cluster with at least two controller nodes. You can do an online (internet-connected) or air gap installation. For more information, see [Online Installation with Embedded Cluster](/enterprise/installing-embedded) or [Air Gap Installation with Embedded Cluster](/enterprise/installing-embedded-air-gap). | ||
|
|
||
| 1. SSH onto a third node that you want to join to the cluster as a controller. | ||
| 1. Get the command for joining the third controller node either in the Admin Console **Cluster Management** tab or by running the following command on an existing node: | ||
|
|
||
| ```bash | ||
| sudo ./APP_SLUG join print-command | ||
| ``` | ||
| Where `APP_SLUG` is the unique application slug. | ||
|
|
||
| 1. SSH onto the node that you want to add as a third controller. | ||
|
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. ^ I also added mention of the print command to the HA procedure since this procedure does assume the user is joining a third controller node |
||
|
|
||
| 1. On the third node, run the join command provided in the Admin Console **Cluster Management** tab. | ||
| 1. On the node, run the join command that you copied. | ||
|
|
||
| **Example:** | ||
|
|
||
|
|
||
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.
^ added to Limitations section