I have a Kubernetes cluster that's running a API Server deployment and a Nginx deployment. I exposed the Server with a ClusterIP service so the Nginx pods can route to it with a proxy pass then I externalize the nginx pods with a LoadBalancer service. But it's not working. What am I misunderstanding? I get a 404 not found for LOAD_BALANCER_IP/api
Server Deployment:
apiVersion: v1
kind: Service
metadata:
name: league-pool-production-server-service
spec:
type: ClusterIP
selector:
app: league-pool-server
ports:
- protocol: TCP
port: 80
targetPort: 3000
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: league-pool-server-deployment
spec:
replicas: 3
selector:
matchLabels:
app: league-pool-server
template:
metadata:
labels:
app: league-pool-server
spec:
containers:
- name: league-pool-server-container
image: helloitsian/league-pool-server
ports:
- containerPort: 3000
env:
- name: MONGO_URL
value: mongodb://mongo-0.mongo,mongo-1.mongo,mongo-2.mongo:27017/player-pools
imagePullPolicy: Always
Nginx Deployment:
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: league-pool-nginx-deployment
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: league-pool-nginx-deployment
minReplicas: 2
maxReplicas: 5
metrics:
- type: Resource
resource:
name: cpu
targetAverageUtilization: 80
---
apiVersion: v1
kind: Service
metadata:
name: league-pool-nginx-service
spec:
type: LoadBalancer
externalTrafficPolicy: Local
selector:
app: league-pool-nginx-production
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
- name: https
protocol: TCP
port: 443
targetPort: 443
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: league-pool-nginx-deployment
labels:
app: league-pool-nginx-production
spec:
replicas: 1
selector:
matchLabels:
app: league-pool-nginx-production
template:
metadata:
labels:
app: league-pool-nginx-production
spec:
containers:
- name: league-pool-nginx-production
image: helloitsian/league-pool-nginx
imagePullPolicy: Always
resources:
limits:
cpu: 300m
requests:
cpu: 100m
memory: 200Mi
ports:
- containerPort: 443
- containerPort: 80
Nginx site conf:
server {
listen 80;
root /usr/share/nginx/html;
location / {
try_files $uri $uri/ =404;
}
location /api {
proxy_pass http://league-pool-server;
}
}