I installed pods and services with deployment.yml
,service.yml
and ingress.yml
like this below.
deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: apa000dep
spec:
selector:
matchLabels:
app: apa000kube
replicas : 3
template:
metadata:
labels:
app: apa000kube
spec:
containers:
- name: apa000ex91
image: httpd
ports:
- containerPort: 80
service.yml
apiVersion: v1
kind: Service
metadata:
name: apa000ser
spec:
type: NodePort
ports:
- port: 8099
targetPort: 80
protocol: TCP
nodePort: 30080
selector:
app: apa000kube
Both works well and, I can access pod directly localhost:30080
then i installed ingress.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- host: demo.localdev.me
http:
paths:
- pathType: Prefix
path: /*
backend:
service:
name: apa000ser
port:
number: 8099
The hostname is set correctly
$kubectl get ingress
NAME CLASS HOSTS ADDRESS
PORTS AGE
example-ingress <none> demo.localdev.me 80 95m
However when I access http://demo.localdev.me
it returns 404 error.
http://localhost:30080/
returns <span>it works!</span>
So, I guess some ingress setting is wrong. where should I check?
Even I stop example-ingress
, result is same.
So it means.
nginx-ingress -> ingress -> service -> pods.
Every request is fetchd in first nginx-ingress
, and not sent to ingress
?