# Error: listen tcp :80: bind: address already in use

- **ID:** `kubernetes/port-conflict-ingress`
- **Domain:** kubernetes
- **Category:** runtime_error
- **Error Code:** `EADDRINUSE`
- **Verification:** ai_generated
- **Fix Rate:** 88%

## Root Cause

The port 80 or 443 is already occupied by another process on the host, preventing the ingress controller or kube-proxy from binding.

## Workarounds

1. **Identify and stop the process using the port: 'sudo lsof -i :80' then 'sudo kill -9 <PID>' or 'sudo systemctl stop nginx' if it's the default web server.** (90% success)
   ```
   Identify and stop the process using the port: 'sudo lsof -i :80' then 'sudo kill -9 <PID>' or 'sudo systemctl stop nginx' if it's the default web server.
   ```
2. **Configure the ingress controller to use a different host port via hostPort in the deployment spec, e.g., 'hostPort: 8080'.** (85% success)
   ```
   Configure the ingress controller to use a different host port via hostPort in the deployment spec, e.g., 'hostPort: 8080'.
   ```

## Dead Ends

- **Delete and recreate the ingress controller pod** — The pod inherits the host network; the port conflict persists on the node regardless of pod lifecycle. (80% fail)
- **Change the ingress controller's service type to NodePort** — NodePort still uses host ports; the conflict remains unless the port is freed. (60% fail)
