<p>I write the following content to <code>/etc/modules-load.d/ipvs.conf</code></p>
<pre><code>ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack_ipv4
</code></pre>
<p>Then I execute <code>sudo systemctl restart systemd-modules-load.service</code>. However, its error shows,</p>
<pre><code>Job for systemd-modules-load.service failed because the control process exited with error code.
</code></pre>
<p>Then I run <code>sudo systemctl status systemd-modules-load.service</code>, the error message shows that</p>
<pre><code>...
Failed to find module 'ip_vs_wrr'
Failed to find module 'ip_vs_sh'
...
</code></pre>
<p>Then I use <code>modprobe ip_vs_wrr</code>, it returns the error message,</p>
<pre><code>modprobe: FATAL: Module ip_vs_wrr not found in directory /lib/modules/4.9.201-tegra
</code></pre>
<p>I suppose that my system doesn't have <code>ip_vs_wrr</code> and <code>ip_vs_sh</code> module. My kernel version is <code>Linux version 4.9.253-tegra</code> and the system is <code>Ubuntu 18.04.5 LTS</code>. How can I load the <code>ip_vs_wrr</code> and <code>ip_vs_sh</code> module correctly? If I don't load these modules, can I still use kubernets successfully?</p>

si yan
<p>I'll answer to the last question which is directly related to kubernetes:</p>
<blockquote>
<p>If I don't load these modules, can I still use kubernets successfully?</p>
</blockquote>
<p>The answer is <strong>yes</strong>, you can use kubernetes.</p>
<p>There are 3 different modes of <code>kube-proxy</code> which can be used in kubernetes cluster:</p>
<ul>
<li>userspace (legacy, not recommended anymore)</li>
<li>iptables (default)</li>
<li>ipvs</li>
</ul>
<p>By default <code>iptables</code> is used. Using <code>ipvs</code> is reasonable if there are more than <code>1000</code> services within the cluster. For better understanding and comparison, you can read <a href="https://www.tigera.io/blog/comparing-kube-proxy-modes-iptables-or-ipvs/" rel="nofollow noreferrer">this article</a>.</p>
<p>If <code>ipvs</code> kernel modules are not available, cluster will start in <code>iptables</code> mode. This is from <a href="https://kubernetes.io/docs/concepts/services-networking/service/#proxy-mode-ipvs" rel="nofollow noreferrer">official documentation</a>:</p>
<blockquote>
<p>Note: To run kube-proxy in IPVS mode, you must make IPVS available on
the node before starting kube-proxy.</p>
<p>When kube-proxy starts in IPVS proxy mode, it verifies whether IPVS
kernel modules are available. If the IPVS kernel modules are not
detected, then kube-proxy falls back to running in iptables proxy
mode.</p>
</blockquote>
