Welcome to the Linux Foundation Forum!

Lab 11.2 step 10. Curl respond 404!

Hi! I have a status error 404 when I try to curl -H "Host: www.external.com" http://10.104.227.79
I've created two deployments with these files
web-one.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-one
  labels:
    system: first
spec:
  selector:
    matchLabels:
      system: first
  replicas: 1
  template:
    metadata:
      labels:
        system: first
    spec:
      containers:
      - image: nginx:1.20.1
        imagePullPolicy: Always
        name: nginx
        ports:
        - containerPort: 80
          protocol: TCP

web-two.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-two
  labels:
    system: secondary
spec:
  selector:
    matchLabels:
      system: secondary
  replicas: 1
  template:
    metadata:
      labels:
        system: secondary
    spec:
      containers:
      - image: nginx:1.20.1
        imagePullPolicy: Always
        name: nginx
        ports:
        - containerPort: 80
          protocol: TCP
ubuntu@cp:~/lab11$ kubectl get pod --all-namespaces |grep nginx
accounting        nginx-one-88766d69b-cmcnx                  2/2     Running   2 (6h30m ago)    6h55m
accounting        nginx-one-88766d69b-g7lqz                  2/2     Running   2 (6h30m ago)    7h4m
accounting        nginx-one-88766d69b-hs26l                  2/2     Running   2 (6h30m ago)    6h58m
accounting        nginx-one-88766d69b-m7tbs                  2/2     Running   2 (6h30m ago)    6h55m
accounting        nginx-one-88766d69b-xjcll                  2/2     Running   2 (6h30m ago)    6h55m
default           myingress-ingress-nginx-controller-qnhf6   1/1     Running   0                39m
default           myingress-ingress-nginx-controller-v259c   1/1     Running   0                39m
default           nginx-6799fc88d8-fwtjn                     1/1     Running   2 (6h30m ago)    26h
ubuntu@cp:~/lab11$ kubectl get ingress
NAME           CLASS    HOSTS              ADDRESS   PORTS   AGE
ingress-test   <none>   www.external.com             80      11m
ubuntu@cp:~/lab11$ kubectl get pod -o wide |grep myingress
myingress-ingress-nginx-controller-qnhf6   1/1     Running   0               40m   192.168.27.189   ip-172-31-20-148   <none>           <none>
myingress-ingress-nginx-controller-v259c   1/1     Running   0               40m   192.168.242.72   cp                 <none>           <none>
ubuntu@cp:~/lab11$ kubectl get svc |grep ingress
myingress-ingress-nginx-controller             LoadBalancer   10.111.54.172    <pending>     80:30145/TCP,443:30334/TCP   40m
myingress-ingress-nginx-controller-admission   ClusterIP      10.104.163.233   <none>        443/TCP                      40m

Please, help me solve this problem!

Comments

  • Sorry I've made a mistake in description. I've been doing:
    curl -H "Host: www.external.com" http://10.111.54.172
    and the respond is 404 error

  • There is answer:

    @micahel71 said:
    Hi,

    I ran into the same issue

    curl -H "Host: www.external.com" x.x.x.x always return 404 Not Found error.

    I found out that the newest version of the ingress-nginx controller (4.0.x) requires some additional infos in the yaml file of the Ingress resource!

    According to the lab documenation the yaml should look like this:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: ingress-test
      namespace: default
    spec:
      rules:
      - host: www.external.com
    (...)
    

    That it is not enough anymore!
    With 4.0.x you need to declare the "ingress.class" !!
    So you need to add the following annotation ;-)

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      annotations:
        kubernetes.io/ingress.class: nginx
      name: ingress-test
      namespace: default
    spec:
      rules:
    (...)
    

    annotations:
    kubernetes.io/ingress.class: nginx

    does the trick even with 4.0.x

    Hope this helps others and the author of the lab documentation incoperates this update.

    Cheers, Michael

Categories

Upcoming Training