Skip to content

Commit

Permalink
Rework related projects page
Browse files Browse the repository at this point in the history
Signed-off-by: Derek Nola <[email protected]>
  • Loading branch information
dereknola committed May 6, 2024
1 parent 862c3dd commit e3c3d10
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 10 deletions.
13 changes: 8 additions & 5 deletions docs/datastore/ha-embedded.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,23 @@ title: "High Availability Embedded etcd"
Embedded etcd (HA) may have performance issues on slower disks such as Raspberry Pis running with SD cards.
:::

:::info
<details>
<summary>Why An Odd Number Of Server Nodes?</summary>

HA embedded etcd cluster must be comprised of an odd number of server nodes for etcd to maintain quorum. For a cluster with n servers, quorum is (n/2)+1. For any odd-sized cluster, adding one node will always increase the number of nodes necessary for quorum. Although adding a node to an odd-sized cluster appears better since there are more machines, the fault tolerance is worse since exactly the same number of nodes may fail without losing quorum but there are more nodes that can fail.
:::

:::note
To rapidly deploy large HA clusters, see [Related Projects](/related-projects)
:::
</details>

An HA K3s cluster with embedded etcd is composed of:

- Three or more **server nodes** that will serve the Kubernetes API and run other control plane services, as well as host the embedded etcd datastore.
- Optional: Zero or more **agent nodes** that are designated to run your apps and services
- Optional: A **fixed registration address** for agent nodes to register with the cluster

:::note
To rapidly deploy large HA clusters, see [Related Projects](../related-projects.md)
:::

To get started, first launch a server node with the `cluster-init` flag to enable clustering and a token that will be used as a shared secret to join additional servers to the cluster.

```bash
Expand Down
2 changes: 2 additions & 0 deletions docs/quick-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,5 @@ Setting the `K3S_URL` parameter causes the installer to configure K3s as an agen
:::note
Each machine must have a unique hostname. If your machines do not have unique hostnames, pass the `K3S_NODE_NAME` environment variable and provide a value with a valid and unique hostname for each node.
:::

If interested in having more server nodes, see [High Availability Embedded etcd](./datastore/ha-embedded.md) and [High Availability External DB](./datastore/ha.md) pages for more information.
14 changes: 9 additions & 5 deletions docs/related-projects.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,16 @@ title: "Related Projects"

Projects implementing the K3s distribution are welcome additions to help expand the community. This page will introduce you to a range of projects that are related to K3s and can help you further explore its capabilities and potential applications.

These projects showcase the versatility and adaptability of K3s in various environments, as well as extensions of K3s.
These projects showcase the versatility and adaptability of K3s in various environments, as well as extensions of K3s. All of these these projects are useful in creating large scale High Avaliability (HA) Kubernetes clusters.

## Bootstrapping a Multi-Node K3s cluster via Ansible
## k3s-ansible

For users seeking to bootstrap a multi-node K3s cluster, we recommend the use of an Ansible script. This approach simplifies the process of setting up a K3s cluster by automating the installation and configuration of each node.
For users seeking to bootstrap a multi-node K3s cluster and familiar with ansible, take a look at [k3s-io/k3s-ansible](https://github.com/k3s-io/k3s-ansible) repository. This set of ansible playbooks provides a convenient way to install K3s on your nodes, allowing you to focus on the configuration of your cluster rather than the installation process.

For this, take a look at [k3s-io/k3s-ansible](https://github.com/k3s-io/k3s-ansible) repository. These scripts provides a convenient way to install K3s on your nodes, allowing you to focus on the configuration of your cluster rather than the installation process.
## k3sup

This approach is particularly useful for creating a High Availability (HA) Kubernetes cluster, as it can be customized to suit the specific requirements of the cluster.
Another project that simplifies the process of setting up a K3s cluster is [k3sup](https://github.com/alexellis/k3sup). This project,written in golang, only requires ssh access to your nodes. It also provides a convenient way to deploy K3s with external datastores, not just the embedded etcd.

## autok3s

Another provisioning tool, [autok3s](https://github.com/cnrancher/autok3s), provides a GUI for provising k3s cluster across a range of cloud providers, VMs, and local machines. This tool is useful for users who prefer a graphical interface for provising K3s clusters.

0 comments on commit e3c3d10

Please sign in to comment.