Welcome to the Linux Foundation Forum!

Lab 7.2 Not the expected results... I'm lost

Options
  1. done
  2. done
  3. https://github.com/containous/traefik/releases does not have a traefic yaml to download?! so I found the traefic-ds.yml in the tar bal
  4. completely confusing as there is nothing to diff. download.yaml where does it come from? oh and where does the name traefic-ds.rule.yaml come from? I think traefic-ds.yaml is meant?
  5. done based on the given traefik-ds.yaml (unchanged)
  6. done (copied the ingress.rule.yaml from tarbal)
  7. now it really becomes confusing... created but get deprecation warning (not expected or described in lab)
$ kubectl create -f ingress.rule.yaml
Warning: networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
ingress.networking.k8s.io/ingress-test created

(not ingress.networking.k8s.io/ingress-test2 created as described)

  1. when I do ip a I get like 10 entries. I think I must be either one of these two (but I've tried all of them). the 192.168.10.100 is my assigned IP for the virtualbox of "master" so the other one?
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 02:45:97:fd:e2:17 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
       valid_lft 65089sec preferred_lft 65089sec
    inet6 fe80::45:97ff:fefd:e217/64 scope link
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:1a:f2:a7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.100/24 brd 192.168.10.255 scope global enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe1a:f2a7/64 scope link
       valid_lft forever preferred_lft forever

$ curl -H "Host: www.example.com" http://10.0.2.15
curl: (7) Failed to connect to 10.0.2.15 port 80: Connection refused
curl -H "Host: www.example.com" http://192.168.10.100
curl: (7) Failed to connect to 192.168.10.100 port 80: Connection refused

not the expected outcome...

try a few things:

$ kubectl get svc
NAME         TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP      10.96.0.1       <none>        443/TCP        6h17m
nginx        ClusterIP      10.100.6.73     <none>        443/TCP        5h55m
registry     ClusterIP      10.99.23.233    <none>        5000/TCP       5h55m
secondapp    LoadBalancer   10.104.28.125   <pending>     80:32000/TCP   17m
thirdpage    NodePort       10.102.188.72   <none>        80:32298/TCP   74m

curl on the IPs for secondapp and thirdpage work, but those do not go through the ingress so not on the right track but lets look onwards

  1. done
  2. done
  3. done
  4. with this command:
$ kubectl exec -it thirdpage-<tab> -- sed -i 's/Welcome to nginx!/third page/g' /usr/share/nginx/html/index.html
$ curl 10.102.188.72
<!DOCTYPE html>
<html>
<head>
<title>third page</title>
...
  1. done
  2. does not work?
  3. only works if I use the "external" http://node-ip:8080/dasboard/ where node-ip is the ip of the worker it runs on... There are no providers?

I'm quite lost at this point. I have done the exercises a couple of times now and even reset my whole cluster to make sure of a clean situation, but no dice :-) any help would be much appreciated.

extra information:

$ kubectl describe -n kube-system svc traefik-ingress-service
Name:              traefik-ingress-service
Namespace:         kube-system
Labels:            <none>
Annotations:       <none>
Selector:          k8s-app=traefik-ingress-lb
Type:              ClusterIP
IP Families:       <none>
IP:                10.96.156.101
IPs:               10.96.156.101
Port:              web  80/TCP
TargetPort:        80/TCP
Endpoints:         192.168.10.111:80,192.168.10.112:80
Port:              admin  8080/TCP
TargetPort:        8080/TCP
Endpoints:         192.168.10.111:8080,192.168.10.112:8080
Session Affinity:  None
Events:            <none>

end de ingress

$ kubectl describe ingress ingress-test
Name:             ingress-test
Namespace:        default
Address:
Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
  Host             Path  Backends
  ----             ----  --------
  www.example.com
                   /   secondapp:80 (192.168.189.72:80)
  thirdpage.org
                   /   thirdpage:80 (192.168.235.139:80)
Annotations:       kubernetes.io/ingress.class: traefik
Events:            <none>

Comments

  • chrispokorni
    chrispokorni Posts: 2,165
    Options

    Hi @ivonet,

    Occasionally, restarting the ingress-test ingress resource helps to resolve the "connection refused" issues reported above.

    Since you seem to have two interfaces on your VM with two IP addresses, try testing the ingress resource over the IP address that was used during the cluster bootstrapping process.

    Also, the user experience on a local vs a cloud environment is expected to be slightly different. It is not so much the cluster configuration, but the networking set up through the hypervisor for host workstation to guest VM, and for guest VM to guest VM connectivity.

    Regards,
    -Chris

  • ivonet
    ivonet Posts: 8
    Options

    Hi @chrispokorni,

    thanks for the answer. I think I figured it out...took me a day :-)
    I have a master and two worker nodes. I don't allow deployments on master and that is where the course setup diffs with my setup. Traefik was not deployed on master but only the workers. When I used those IP's it worked immediately.

    Learned something again :-)

    Kind regards,
    Ivo.

  • chrispokorni
    chrispokorni Posts: 2,165
    Options

    Hi @ivonet,

    Thanks for also sharing your cluster configuration details... now it all makes sense ;)

    Regards,
    -Chris

Categories

Upcoming Training