Moving ip forwarding and prereqs to container runtime page (#32946)
This commit is contained in:
@@ -46,6 +46,41 @@ check the documentation for that version.
|
|||||||
|
|
||||||
|
|
||||||
<!-- body -->
|
<!-- body -->
|
||||||
|
## Install and configure prerequisites
|
||||||
|
|
||||||
|
The following steps apply common settings for Kubernetes nodes on Linux.
|
||||||
|
|
||||||
|
You can skip a particular setting if you're certain you don't need it.
|
||||||
|
|
||||||
|
For more information, see [Network Plugin Requirements](/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/#network-plugin-requirements) or the documentation for your specific container runtime.
|
||||||
|
|
||||||
|
### Forwarding IPv4 and letting iptables see bridged traffic
|
||||||
|
|
||||||
|
Verify that the `br_netfilter` module is loaded by running `lsmod | grep br_netfilter`.
|
||||||
|
|
||||||
|
To load it explicitly, run `sudo modprobe br_netfilter`.
|
||||||
|
|
||||||
|
In order for a Linux node's iptables to correctly view bridged traffic, verify that `net.bridge.bridge-nf-call-iptables` is set to 1 in your `sysctl` config. For example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
|
||||||
|
overlay
|
||||||
|
br_netfilter
|
||||||
|
EOF
|
||||||
|
|
||||||
|
sudo modprobe overlay
|
||||||
|
sudo modprobe br_netfilter
|
||||||
|
|
||||||
|
# sysctl params required by setup, params persist across reboots
|
||||||
|
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
|
||||||
|
net.bridge.bridge-nf-call-iptables = 1
|
||||||
|
net.bridge.bridge-nf-call-ip6tables = 1
|
||||||
|
net.ipv4.ip_forward = 1
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Apply sysctl params without reboot
|
||||||
|
sudo sysctl --system
|
||||||
|
```
|
||||||
|
|
||||||
## Cgroup drivers
|
## Cgroup drivers
|
||||||
|
|
||||||
@@ -139,38 +174,18 @@ This section outlines the necessary steps to use containerd as CRI runtime.
|
|||||||
|
|
||||||
Use the following commands to install Containerd on your system:
|
Use the following commands to install Containerd on your system:
|
||||||
|
|
||||||
1. Install and configure prerequisites:
|
|
||||||
|
|
||||||
(these instructions apply to Linux nodes only)
|
|
||||||
|
|
||||||
```shell
|
Follow the instructions for [getting started with containerd](https://github.com/containerd/containerd/blob/main/docs/getting-started.md). Return to this step once you've created a valid configuration file, `config.toml`.
|
||||||
cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
|
|
||||||
overlay
|
|
||||||
br_netfilter
|
|
||||||
EOF
|
|
||||||
|
|
||||||
sudo modprobe overlay
|
{{< tabs name="Finding your config.toml file" >}}
|
||||||
sudo modprobe br_netfilter
|
{{% tab name="Linux" %}}
|
||||||
|
You can find this file under the path `/etc/containerd/config.toml`.
|
||||||
# Setup required sysctl params, these persist across reboots.
|
{{% /tab %}}
|
||||||
cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
|
{{< tab name="Windows" >}}
|
||||||
net.bridge.bridge-nf-call-iptables = 1
|
You can find this file under the path `C:\Program Files\containerd\config.toml`.
|
||||||
net.ipv4.ip_forward = 1
|
{{< /tab >}}
|
||||||
net.bridge.bridge-nf-call-ip6tables = 1
|
{{< /tabs >}}
|
||||||
EOF
|
|
||||||
|
|
||||||
# Apply sysctl params without reboot
|
|
||||||
sudo sysctl --system
|
|
||||||
```
|
|
||||||
|
|
||||||
1. Install containerd:
|
|
||||||
|
|
||||||
Visit
|
|
||||||
[Getting started with containerd](https://github.com/containerd/containerd/blob/main/docs/getting-started.md)
|
|
||||||
and follow the instructions there, up to the point where you have a valid
|
|
||||||
configuration file, config.toml.
|
|
||||||
On Linux, you can find this file under the path `/etc/containerd/config.toml`.
|
|
||||||
On Windows, you can find this file under the path `C:\Program Files\containerd\config.toml`.
|
|
||||||
|
|
||||||
On Linux the default CRI socket for containerd is `/run/containerd/containerd.sock`.
|
On Linux the default CRI socket for containerd is `/run/containerd/containerd.sock`.
|
||||||
On Windows the default CRI endpoint is `npipe://./pipe/containerd-containerd`.
|
On Windows the default CRI endpoint is `npipe://./pipe/containerd-containerd`.
|
||||||
|
|||||||
@@ -45,26 +45,6 @@ may [fail](https://github.com/kubernetes/kubeadm/issues/31).
|
|||||||
If you have more than one network adapter, and your Kubernetes components are not reachable on the default
|
If you have more than one network adapter, and your Kubernetes components are not reachable on the default
|
||||||
route, we recommend you add IP route(s) so Kubernetes cluster addresses go via the appropriate adapter.
|
route, we recommend you add IP route(s) so Kubernetes cluster addresses go via the appropriate adapter.
|
||||||
|
|
||||||
## Letting iptables see bridged traffic
|
|
||||||
|
|
||||||
Make sure that the `br_netfilter` module is loaded. This can be done by running `lsmod | grep br_netfilter`. To load it explicitly call `sudo modprobe br_netfilter`.
|
|
||||||
|
|
||||||
As a requirement for your Linux Node's iptables to correctly see bridged traffic, you should ensure `net.bridge.bridge-nf-call-iptables` is set to 1 in your `sysctl` config, e.g.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
|
|
||||||
br_netfilter
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
|
|
||||||
net.bridge.bridge-nf-call-ip6tables = 1
|
|
||||||
net.bridge.bridge-nf-call-iptables = 1
|
|
||||||
EOF
|
|
||||||
sudo sysctl --system
|
|
||||||
```
|
|
||||||
|
|
||||||
For more details please see the [Network Plugin Requirements](/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/#network-plugin-requirements) page.
|
|
||||||
|
|
||||||
## Check required ports
|
## Check required ports
|
||||||
These
|
These
|
||||||
[required ports](/docs/reference/ports-and-protocols/)
|
[required ports](/docs/reference/ports-and-protocols/)
|
||||||
|
|||||||
Reference in New Issue
Block a user