I'm using kubernetes-sigs.github.io as a reference to expose my app on eks using one load balancer. I got their example working with just a slight modification in the annotation. I added the group.name
.
apiVersion: v1
kind: Namespace
metadata:
name: echoserver
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: echoserver
namespace: echoserver
spec:
selector:
matchLabels:
app: echoserver
replicas: 1
template:
metadata:
labels:
app: echoserver
spec:
containers:
- image: k8s.gcr.io/e2e-test-images/echoserver:2.5
imagePullPolicy: Always
name: echoserver
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: echoserver
namespace: echoserver
spec:
ports:
- port: 80
targetPort: 8080
protocol: TCP
type: NodePort
selector:
app: echoserver
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: echoserver
namespace: echoserver
annotations:
alb.ingress.kubernetes.io/subnets: subnet-1,subnet-2,subnet-3
alb.ingress.kubernetes.io/tags: Environment=dev,Team=test
alb.ingress.kubernetes.io/group.name: test.apps
alb.ingress.kubernetes.io/scheme: internal
spec:
ingressClassName: alb
rules:
- http:
paths:
- path: /echoserver
pathType: Prefix
backend:
service:
name: echoserver
port:
number: 80
I am able to curl the ext ip of the ingress with a /echoserver
and see the expected output. However, I couldn't get it to work for my app. I tried using another popular test image, game-2048, but it also didn't work. I just need 404 Not Found when I try to curl or visit in browser. What am I missing?
---
apiVersion: v1
kind: Namespace
metadata:
name: game-2048
---
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: game-2048
name: deployment-2048
spec:
selector:
matchLabels:
app.kubernetes.io/name: app-2048
replicas: 5
template:
metadata:
labels:
app.kubernetes.io/name: app-2048
spec:
containers:
- image: alexwhen/docker-2048
imagePullPolicy: Always
name: app-2048
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
namespace: game-2048
name: service-2048
spec:
ports:
- port: 80
targetPort: 80
protocol: TCP
type: NodePort
selector:
app.kubernetes.io/name: app-2048
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
namespace: game-2048
name: ingress-2048
annotations:
alb.ingress.kubernetes.io/subnets: subnet-1,subnet-2,subnet-3
alb.ingress.kubernetes.io/tags: Environment=dev,Team=test
alb.ingress.kubernetes.io/group.name: test.apps
alb.ingress.kubernetes.io/scheme: internal
spec:
ingressClassName: alb
rules:
- http:
paths:
- path: /game
pathType: Prefix
backend:
service:
name: service-2048
port:
number: 80