mirror of
https://github.com/rancher/rancher-docs.git
synced 2026-09-26 21:18:04 +00:00
@@ -1,17 +1,11 @@
|
||||
---
|
||||
title: "High Availability with Embedded DB (Experimental)"
|
||||
title: "High Availability with Embedded DB"
|
||||
weight: 40
|
||||
---
|
||||
|
||||
K3s is previewing support for running a highly available control plane without the need for an external database. This means there is no need to manage an external etcd or SQL datastore.
|
||||
|
||||
In K3s 1.0.0, Dqlite was used as the experimental embedded database. In K3s v1.19.1+, embedded etcd is used.
|
||||
|
||||
Please note that upgrades from experimental Dqlite to experimental embedded etcd are not supported. If you attempt an upgrade it will not succeed and data will be lost.
|
||||
|
||||
### Embedded etcd (Experimental)
|
||||
|
||||
_Available as of K3s v1.19.1_
|
||||
>**Notice:**
|
||||
K3s has added full support for embedded etcd as of release v1.19.5+k3s1. Versions v1.19.1 thru v1.19.4 provide only experimental support for embedded etcd.
|
||||
Embedded etcd replaced experimental Dqlite in the K3s v1.19.1 release. This is a breaking change. Please note that upgrades from experimental Dqlite to embedded etcd are not supported. If you attempt an upgrade it will not succeed and data will be lost.
|
||||
|
||||
To run K3s in this mode, you must have an odd number of server nodes. We recommend starting with three nodes.
|
||||
|
||||
@@ -26,13 +20,3 @@ K3S_TOKEN=SECRET k3s server --server https://<ip or hostname of server1>:6443
|
||||
```
|
||||
|
||||
Now you have a highly available control plane. Joining additional worker nodes to the cluster follows the same procedure as a single server cluster.
|
||||
|
||||
### Embedded Dqlite (Deprecated)
|
||||
|
||||
> **Warning:** Experimental etcd replaced experimental Dqlite in the K3s v1.19.1 release. This is a breaking change. Please note that upgrades from experimental Dqlite to experimental embedded etcd are not supported. If you attempt an upgrade it will not succeed and data will be lost.
|
||||
|
||||
As of v1.0.0, K3s previewed support for running a highly available control plane without the need for an external database.
|
||||
|
||||
This architecture is achieved by embedding a Dqlite database within the K3s server process. DQLite is short for "distributed SQLite." According to https://dqlite.io, it is "*a fast, embedded, persistent SQL database with Raft consensus that is perfect for fault-tolerant IoT and Edge devices.*"
|
||||
|
||||
To run K3s with the embedded Dqlite database, follow the same steps as the [embedded etcd database](#embedded-etcd-experimental) using a K3s release between v1.0.0 and v1.19.1.
|
||||
@@ -41,21 +41,24 @@ K3s performance depends on the performance of the database. To ensure optimal sp
|
||||
|
||||
## Networking
|
||||
|
||||
The K3s server needs port 6443 to be accessible by the nodes.
|
||||
The K3s server needs port 6443 to be accessible by all nodes.
|
||||
|
||||
The nodes need to be able to reach other nodes over UDP port 8472 when Flannel VXLAN is used. The node should not listen on any other port. K3s uses reverse tunneling such that the nodes make outbound connections to the server and all kubelet traffic runs through that tunnel. However, if you do not use Flannel and provide your own custom CNI, then port 8472 is not needed by K3s.
|
||||
|
||||
If you wish to utilize the metrics server, you will need to open port 10250 on each node.
|
||||
|
||||
If you plan on achieving high availability with embedded etcd, server nodes must be accessible to each other on ports 2379 and 2380.
|
||||
|
||||
> **Important:** The VXLAN port on nodes should not be exposed to the world as it opens up your cluster network to be accessed by anyone. Run your nodes behind a firewall/security group that disables access to port 8472.
|
||||
|
||||
<figcaption>Inbound Rules for K3s Server Nodes</figcaption>
|
||||
|
||||
| Protocol | Port | Source | Description
|
||||
|-----|-----|----------------|---|
|
||||
| TCP | 6443 | K3s agent nodes | Kubernetes API
|
||||
| TCP | 6443 | K3s agent nodes | Kubernetes API Server
|
||||
| UDP | 8472 | K3s server and agent nodes | Required only for Flannel VXLAN
|
||||
| TCP | 10250 | K3s server and agent nodes | kubelet
|
||||
| TCP | 10250 | K3s server and agent nodes | Kubelet metrics
|
||||
| TCP | 2379-2380 | K3s server nodes | Required only for HA with embedded etcd
|
||||
|
||||
Typically all outbound traffic is allowed.
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ To automate upgrades in this manner you must:
|
||||
### Install the system-upgrade-controller
|
||||
The system-upgrade-controller can be installed as a deployment into your cluster. The deployment requires a service-account, clusterRoleBinding, and a configmap. To install these components, run the following command:
|
||||
```
|
||||
kubectl apply -f https://github.com/rancher/system-upgrade-controller/releases/download/v0.4.0/system-upgrade-controller.yaml
|
||||
kubectl apply -f https://github.com/rancher/system-upgrade-controller/releases/download/v0.6.2/system-upgrade-controller.yaml
|
||||
```
|
||||
The controller can be configured and customized via the previously mentioned configmap, but the controller must be redeployed for the changes to be applied.
|
||||
|
||||
|
||||
@@ -64,21 +64,10 @@ kubectl -n cattle-system logs -f rancher-84d886bdbb-s4s69 rancher-audit-log
|
||||
#### Rancher Web GUI
|
||||
|
||||
1. From the context menu, select **Cluster: local > System**.
|
||||
|
||||

|
||||
|
||||
1. From the main navigation bar, choose **Resources > Workloads.** (In versions prior to v2.3.0, choose **Workloads** on the main navigation bar.) Find the `cattle-system` namespace. Open the `rancher` workload by clicking its link.
|
||||
|
||||

|
||||
|
||||
1. Pick one of the `rancher` pods and select **⋮ > View Logs**.
|
||||
|
||||

|
||||
|
||||
1. From the **Logs** drop-down, select `rancher-audit-log`.
|
||||
|
||||

|
||||
|
||||
#### Shipping the Audit Log
|
||||
|
||||
You can enable Rancher's built in log collection and shipping for the cluster to ship the audit and other services logs to a supported collection endpoint. See [Rancher Tools - Logging]({{<baseurl>}}/rancher/v2.x/en/cluster-admin/tools/logging) for details.
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 18 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 44 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 52 KiB |
Reference in New Issue
Block a user