<p>I have a simple NodeJS project running on a K3s cluster on a Raspberry Pi 4. The cluster has a service to expose it. The code is as follows...</p>
<pre><code>spec:
  type: LoadBalancer
  ports:
    - protocol: TCP
      port: 3000
      targetPort: 3000
</code></pre>
<p>I want to try and use port 80 instead of 3000 so I try...</p>
<pre><code>spec:
  type: LoadBalancer
  ports:
    - protocol: TCP
      port: 80
      targetPort: 3000
</code></pre>
<p>But it can't use the port.</p>
<blockquote>
<p>Warning  FailedScheduling  5m          0/1 nodes are available: 1 node(s) didn't have free ports for the requested pod ports.</p>
</blockquote>
<p>Why am I having issues?</p>
<p><strong>Update</strong></p>
<p>Per the answer I tried...</p>
<pre><code>pi@raspberrypi:~ $ sudo netstat -tulpn | grep :80
pi@raspberrypi:~ $ sudo ss -tulpn | grep :80
pi@raspberrypi:~ $ 
</code></pre>
<p>My guess is this is a K3s or Pi limitation.</p>
<p><strong>Update 2</strong></p>
<p>When I run <code>kubectl get service --all-namespaces</code></p>
<pre><code>NAMESPACE        NAME                 TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)                      AGE
default          kubernetes           ClusterIP      10.43.0.1       &lt;none&gt;          443/TCP                      24d
kube-system      kube-dns             ClusterIP      10.43.0.10      &lt;none&gt;          53/UDP,53/TCP,9153/TCP       24d
kube-system      metrics-server       ClusterIP      10.43.48.200    &lt;none&gt;          443/TCP                      24d
kube-system      traefik-prometheus   ClusterIP      10.43.89.96     &lt;none&gt;          9100/TCP                     24d
kube-system      traefik              LoadBalancer   10.43.65.154    192.168.x.xxx   80:31065/TCP,443:32574/TCP   24d
test-namespace   app-tier             LoadBalancer   10.43.190.179   192.168.x.xxx   3000:31500/TCP               4d
</code></pre>

<p>k3s comes with a pre-installed traefik ingress controller which binds to 80, 443 and 8080 on the host, alhtough you should have seen that with ss or netstat</p>
<p>You should see this service if you run:</p>
<pre><code>kubectl get service --all-namespaces
</code></pre>
<p>Although you should have seen it with netstat or ss if something is using the port if this is the case. But mb this service also failed to deploy but somehow blocks k3s from taking the port.</p>
<p>Another thing I can think of: Are you running the experimental rootless setup?</p>
