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

Add internal link checker #57

Merged
merged 4 commits into from
Dec 9, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .github/workflows/test-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,8 @@ jobs:

- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Check internal links
run: yarn run remark --quiet --frail ./docs
- name: Test build website
run: yarn build
run: yarn build

6 changes: 3 additions & 3 deletions docs/advanced/advanced.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ The following certificates can be rotated: `admin`, `api-server`, `controller-ma

Any file found in `/var/lib/rancher/k3s/server/manifests` will automatically be deployed to Kubernetes in a manner similar to `kubectl apply`, both on startup and when the file is changed on disk. Deleting files out of this directory will not delete the corresponding resources from the cluster.

For information about deploying Helm charts, refer to the section about [Helm.](helm/helm.md)
For information about deploying Helm charts, refer to the section about [Helm.](../helm/helm.md)

## Using Docker as the Container Runtime

Expand Down Expand Up @@ -191,7 +191,7 @@ Some of the configuration used by rootlesskit and slirp4nets can be set by envir

## Node Labels and Taints

K3s agents can be configured with the options `--node-label` and `--node-taint` which adds a label and taint to the kubelet. The two options only add labels and/or taints [at registration time,](reference/agent-config.md#node-labels-and-taints-for-agents) so they can only be added once and not changed after that again by running K3s commands.
K3s agents can be configured with the options `--node-label` and `--node-taint` which adds a label and taint to the kubelet. The two options only add labels and/or taints [at registration time,](../reference/agent-config.md#node-labels-and-taints-for-agents) so they can only be added once and not changed after that again by running K3s commands.

If you want to change node labels and taints after node registration you should use `kubectl`. Refer to the official Kubernetes documentation for details on how to add [taints](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/) and [node labels.](https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes/#add-a-label-to-a-node)

Expand Down Expand Up @@ -336,7 +336,7 @@ If you are installing K3s on a system where SELinux is enabled by default (such
<Tabs>
<TabItem value="Automatic Installation" default>

The [install script](installation/configuration#options-for-installation-with-script) will automatically install the SELinux RPM from the Rancher RPM repository if on a compatible system if not performing an air-gapped install. Automatic installation can be skipped by setting `INSTALL_K3S_SKIP_SELINUX_RPM=true`.
The [install script](../installation/configuration.md#configuration-with-install-script) will automatically install the SELinux RPM from the Rancher RPM repository if on a compatible system if not performing an air-gapped install. Automatic installation can be skipped by setting `INSTALL_K3S_SKIP_SELINUX_RPM=true`.

</TabItem>

Expand Down
2 changes: 1 addition & 1 deletion docs/backup-restore/backup-restore.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ k3s server \

#### Options

These options can be passed in with the command line, or in the [configuration file,](installation/configuration.md/#configuration-file ) which may be easier to use.
These options can be passed in with the command line, or in the [configuration file,](../installation/configuration.md#configuration-file ) which may be easier to use.

| Options | Description |
| ----------- | --------------- |
Expand Down
8 changes: 4 additions & 4 deletions docs/faq/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ The FAQ is updated periodically and designed to answer the questions our users m

### Is K3s a suitable replacement for Kubernetes?

K3s is a CNCF-certified Kubernetes distribution, and can do everything required of a standard Kubernetes cluster. It is just a more lightweight version. See the [main](introduction.md) docs page for more details.
K3s is a CNCF-certified Kubernetes distribution, and can do everything required of a standard Kubernetes cluster. It is just a more lightweight version. See the [main](../introduction.md) docs page for more details.

### How can I use my own Ingress instead of Traefik?

Expand All @@ -31,7 +31,7 @@ The installation script will auto-detect if your OS is using systemd or openrc a

### Can I run K3s in Docker?

Yes, there are multiple ways to run K3s in Docker. See [Advanced Options](advanced/advanced.md#running-k3s-in-docker) for more details.
Yes, there are multiple ways to run K3s in Docker. See [Advanced Options](../advanced/advanced.md#running-k3s-in-docker) for more details.

### What is the difference between K3s Server and Agent Tokens?

Expand All @@ -47,9 +47,9 @@ If no `K3S_TOKEN` is defined, the first K3s server will generate a random token

If you are having an issue with deploying K3s, you should:

1) Check the [Known Issues](known-issues/known-issues.md) page.
1) Check the [Known Issues](../known-issues/known-issues.md) page.

2) Check that you have resolved any [Additional OS Preparation](advanced/advanced.md#additional-os-preparations). Run `k3s check-config` and ensure that it passes.
2) Check that you have resolved any [Additional OS Preparation](../advanced/advanced.md#additional-os-preparations). Run `k3s check-config` and ensure that it passes.

3) Search the [K3s GitHub existing issues](https://github.com/k3s-io/k3s/issues) for one that matches your problem.

Expand Down
2 changes: 1 addition & 1 deletion docs/helm/helm.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ weight: 42

Helm is the package management tool of choice for Kubernetes. Helm charts provide templating syntax for Kubernetes YAML manifest documents. With Helm, we can create configurable deployments instead of just using static files. For more information about creating your own catalog of deployments, check out the docs at [https://helm.sh/docs/intro/quickstart/](https://helm.sh/docs/intro/quickstart/).

K3s does not require any special configuration to use with Helm command-line tools. Just be sure you have properly set up your kubeconfig as per the section about [cluster access](cluster-access/cluster-access.md). K3s does include some extra functionality to make deploying both traditional Kubernetes resource manifests and Helm Charts even easier with the [rancher/helm-release CRD.](#using-the-helm-crd)
K3s does not require any special configuration to use with Helm command-line tools. Just be sure you have properly set up your kubeconfig as per the section about [cluster access](../cluster-access/cluster-access.md). K3s does include some extra functionality to make deploying both traditional Kubernetes resource manifests and Helm Charts even easier with the [rancher/helm-release CRD.](#using-the-helm-crd)

This section covers the following topics:

Expand Down
6 changes: 3 additions & 3 deletions docs/installation/airgap.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ INSTALL_K3S_SKIP_DOWNLOAD=true K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetok
</TabItem>
<TabItem value="High Availability Configuration" default>

Reference the [High Availability with an External DB](ha.md) or [High Availability with Embedded DB](ha.md-embedded) guides. You will be tweaking install commands so you specify `INSTALL_K3S_SKIP_DOWNLOAD=true` and run your install script locally instead of via curl. You will also utilize `INSTALL_K3S_EXEC='args'` to supply any arguments to k3s.
Reference the [High Availability with an External DB](ha.md) or [High Availability with Embedded DB](ha-embedded.md) guides. You will be tweaking install commands so you specify `INSTALL_K3S_SKIP_DOWNLOAD=true` and run your install script locally instead of via curl. You will also utilize `INSTALL_K3S_EXEC='args'` to supply any arguments to k3s.

For example, step two of the High Availability with an External DB guide mentions the following:

Expand Down Expand Up @@ -107,7 +107,7 @@ with the same environment variables.

### Automated Upgrades Method

As of v1.17.4+k3s1 K3s supports [automated upgrades](upgrades/automated.md). To enable this in air-gapped environments, you must ensure the required images are available in your private registry.
As of v1.17.4+k3s1 K3s supports [automated upgrades](../upgrades/automated.md). To enable this in air-gapped environments, you must ensure the required images are available in your private registry.

You will need the version of rancher/k3s-upgrade that corresponds to the version of K3s you intend to upgrade to. Note, the image tag replaces the `+` in the K3s release with a `-` because Docker images do not support `+`.

Expand All @@ -118,4 +118,4 @@ rancher/system-upgrade-controller:v0.4.0
rancher/kubectl:v0.17.0
```

Once you have added the necessary rancher/k3s-upgrade, rancher/system-upgrade-controller, and rancher/kubectl images to your private registry, follow the [automated upgrades](upgrades/automated.md) guide.
Once you have added the necessary rancher/k3s-upgrade, rancher/system-upgrade-controller, and rancher/kubectl images to your private registry, follow the [automated upgrades](../upgrades/automated.md) guide.
10 changes: 5 additions & 5 deletions docs/installation/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ This page focuses on the options that can be used when you set up K3s for the fi
- [K3s Binary](#configuration-with-binary)
- [Configuration File](#configuration-file)

For more advanced options, refer to [this page](advanced/advanced.md).
For more advanced options, refer to [this page](../advanced/advanced.md).

## Configuration with install script

As mentioned in the [Quick-Start Guide](quick-start/quick-start.md), you can use the installation script available at https://get.k3s.io to install K3s as a service on systemd and openrc based systems.
As mentioned in the [Quick-Start Guide](../quick-start/quick-start.md), you can use the installation script available at https://get.k3s.io to install K3s as a service on systemd and openrc based systems.

You can use a combination of `INSTALL_K3S_EXEC`, `K3S_` environment variables, and command flags to configure the installation.

Expand All @@ -27,7 +27,7 @@ curl -sfL https://get.k3s.io | K3S_TOKEN=12345 sh -s - server --flannel-backend
curl -sfL https://get.k3s.io | sh -s - --flannel-backend none --token 12345
```

For details on all environment variables, see [Environment Variables.](reference/env-variables.md)
For details on all environment variables, see [Environment Variables.](../reference/env-variables.md)

## Configuration with binary

Expand All @@ -52,8 +52,8 @@ The k3s agent can also be configured this way:
k3s agent --server https://k3s.example.com --token mypassword
```

For details on configuring the K3s server, see [Server Configuration.](reference/server-config.md)
For details on configuring the K3s agent, see [Agent Configuration.](reference/agent-config.md)
For details on configuring the K3s server, see [Server Configuration.](../reference/server-config.md)
For details on configuring the K3s agent, see [Agent Configuration.](../reference/agent-config.md)
You can also use the `--help` flag to see a list of all available options.

:::info Matching Flags
Expand Down
13 changes: 4 additions & 9 deletions docs/installation/ha.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,14 @@ Single server clusters can meet a variety of use cases, but for environments whe
* An **external datastore** (as opposed to the embedded SQLite datastore used in single-server setups)
* A **fixed registration address** that is placed in front of the server nodes to allow agent nodes to register with the cluster

For more details on how these components work together, refer to the [architecture section.](architecture/architecture.md#high-availability-with-an-external-db)
For more details on how these components work together, refer to the [architecture section.](../architecture/architecture.md#high-availability-k3s-server-with-an-external-db)

Agents register through the fixed registration address, but after registration they establish a connection directly to one of the server nodes. This is a websocket connection initiated by the `k3s agent` process and it is maintained by a client-side load balancer running as part of the agent process.
Agents register through the fixed registration address, but after registration they establish a connection directly to one of the server nodes. This is a websocket connection initiated by the `k3s agent` process, it is maintained by a client-side load balancer running as part of the agent process.

## Installation Outline

Setting up an HA cluster requires the following steps:

1. [Create an external datastore](#1-create-an-external-datastore)
2. [Launch server nodes](#2-launch-server-nodes)
3. [Configure the fixed registration address](#3-configure-the-fixed-registration-address)
4. [Join agent nodes](#4-optional-join-agent-nodes)

### 1. Create an External Datastore
You will first need to create an external datastore for the cluster. See the [Cluster Datastore Options](datastore.md) documentation for more details.

Expand All @@ -35,7 +30,7 @@ K3s requires two or more server nodes for this HA configuration. See the [Requir

When running the `k3s server` command on these nodes, you must set the `datastore-endpoint` parameter so that K3s knows how to connect to the external datastore. The `token` parameter can also be used to set a deterministic token when adding nodes. When empty, this token will be generated automatically for further use.

For example, a command like the following could be used to install the K3s server with a MySQL database as the external datastore and [set a token](reference/server-config.md#cluster-options):
For example, a command like the following could be used to install the K3s server with a MySQL database as the external datastore and [set a token](../reference/server-config.md#cluster-options):

```bash
curl -sfL https://get.k3s.io | sh -s - server \
Expand Down Expand Up @@ -74,7 +69,7 @@ If the first server node was started without the `--token` CLI flag or `K3S_TOKE
cat /var/lib/rancher/k3s/server/token
```

Additional server nodes can then be added [using the token](reference/server-config.md#cluster-options):
Additional server nodes can then be added [using the token](../reference/server-config.md#cluster-options):

```bash
curl -sfL https://get.k3s.io | sh -s - server \
Expand Down
6 changes: 3 additions & 3 deletions docs/installation/network-options.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ import TabItem from '@theme/TabItem';

This page describes K3s network configuration options, including configuration or replacement of Flannel, and configuring IPv6.

> **Note:** Please reference the [Networking](networking/networking.md) page for information about CoreDNS, Traefik, and the Service LB.
> **Note:** Please reference the [Networking](../networking/networking.md) page for information about CoreDNS, Traefik, and the Service LB.

## Flannel Options

[Flannel](https://github.com/flannel-io/flannel/blob/master/README.md) is a lightweight provider of layer 3 network fabric that implements the Kubernetes Container Network Interface (CNI). It is what is commonly referred to as a CNI Plugin.

* Flannel options can only be set on server nodes, and must be identical on all servers in the cluster.
* The default backend for Flannel is `vxlan`. To enable encryption, use the `wireguard-native` backend.
* Using `vxlan` on Rasperry Pi with recent versions of Ubuntu requires [additional preparation](advanced/advanced.md/#raspberry-pi).
* Using `vxlan` on Rasperry Pi with recent versions of Ubuntu requires [additional preparation](../advanced/advanced.md#raspberry-pi).
* Using `wireguard-native` as the Flannel backend may require additional modules on some Linux distributions. Please see the [WireGuard Install Guide](https://www.wireguard.com/install/) for details.
The WireGuard install steps will ensure the appropriate kernel modules are installed for your operating system.
You must ensure that WireGuard kernel modules are available on every node, both servers and agents, before attempting to use the WireGuard Flannel backend.
Expand Down Expand Up @@ -149,7 +149,7 @@ and on agents:
--node-external-ip=<AGENT_EXTERNAL_IP>
```

where `SERVER_EXTERNAL_IP` is the IP through which we can reach the server node and `AGENT_EXTERNAL_IP` is the IP through which we can reach the agent/worker node. Note that the `K3S_URL` config parameter in the agent/worker should use the `SERVER_EXTERNAL_IP` to be able to connect to it. Remember to check the [Networking Requirements](installation/requirements.md#networking) and allow access to the listed ports on both internal and external addresses.
where `SERVER_EXTERNAL_IP` is the IP through which we can reach the server node and `AGENT_EXTERNAL_IP` is the IP through which we can reach the agent/worker node. Note that the `K3S_URL` config parameter in the agent/worker should use the `SERVER_EXTERNAL_IP` to be able to connect to it. Remember to check the [Networking Requirements](../installation/requirements.md#networking) and allow access to the listed ports on both internal and external addresses.

Both `SERVER_EXTERNAL_IP` and `AGENT_EXTERNAL_IP` must have connectivity between them and are normally public IPs.

Expand Down
6 changes: 3 additions & 3 deletions docs/installation/requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ K3s is expected to work on most modern Linux systems.

Some OSs have specific requirements:

- If you are using **(Red Hat/CentOS) Enterprise Linux**, follow [these steps](advanced/advanced.md#additional-preparation-for-red-hatcentos-enterprise-linux) for additional setup.
- If you are using **Raspberry Pi OS**, follow [these steps](advanced/advanced.md#additional-preparation-for-raspberry-pi-os) to switch to legacy iptables.
- If you are using **(Red Hat/CentOS) Enterprise Linux**, follow [these steps](../advanced/advanced.md#red-hat-enterprise-linux--centos) for additional setup.
- If you are using **Raspberry Pi OS**, follow [these steps](../advanced/advanced.md#raspberry-pi) to switch to legacy iptables.

For more information on which OSs were tested with Rancher managed K3s clusters, refer to the [Rancher support and maintenance terms.](https://rancher.com/support-maintenance-terms/)

Expand All @@ -31,7 +31,7 @@ Hardware requirements scale based on the size of your deployments. Minimum recom
* RAM: 512MB Minimum (we recommend at least 1GB)
* CPU: 1 Minimum

[K3s Resource Profiling](reference/resource-profiling.md) captures the results of tests to determine minimum resource requirements for the K3s agent, the K3s server with a workload, and the K3s server with one agent. It also contains analysis about what has the biggest impact on K3s server and agent utilization, and how the cluster datastore can be protected from interference from agents and workloads.
[K3s Resource Profiling](../reference/resource-profiling.md) captures the results of tests to determine minimum resource requirements for the K3s agent, the K3s server with a workload, and the K3s server with one agent. It also contains analysis about what has the biggest impact on K3s server and agent utilization, and how the cluster datastore can be protected from interference from agents and workloads.

#### Disks

Expand Down
4 changes: 2 additions & 2 deletions docs/known-issues/known-issues.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ If you plan to use K3s with docker, Docker installed via a snap package is not r

If you are running iptables in nftables mode instead of legacy you might encounter issues. We recommend utilizing newer iptables (such as 1.6.1+) to avoid issues.

Additionally, versions 1.8.0-1.8.4 have known issues that can cause K3s to fail. See [Additional OS Preparation](advanced/advanced.md#additional-preparation-for-debian-buster-based-distributions) for workarounds.
Additionally, versions 1.8.0-1.8.4 have known issues that can cause K3s to fail. See [Additional OS Preparations](../advanced/advanced.md#old-iptables-versions) for workarounds.

### Rootless Mode

Running K3s with Rootless mode is experimental and has several [known issues.](advanced/advanced.md#known-issues-with-rootless-mode)
Running K3s with Rootless mode is experimental and has several [known issues.](../advanced/advanced.md#known-issues-with-rootless-mode)
Loading