Welcome to the Linux Foundation Forum!

Lab 9.2

Posts: 5
edited June 2022 in LFS258 Class Forum

I have problems with this Lab. I work on a local setup with one CP and one Worker Node. Lab 9.1 is successfully installed. Now I can't go any further.

  1. [user@k8s-master-01 ~]$ less /etc/hosts
  2. 192.168.99.200 k8s-master-01.example.org k8s-master-01
  3. 192.168.99.201 k8s-worker-01.example.org k8s-worker-01
  4.  
  5. 192.168.99.200 k8s-endpoint.example.org k8s-endpoint
  1. [user@k8s-master-01 ~]$ kubectl -n accounting describe services
  2. Name: service-lab
  3. Namespace: accounting
  4. Labels: system=secondary
  5. Annotations: <none>
  6. Selector: system=secondary
  7. Type: NodePort
  8. IP Family Policy: SingleStack
  9. IP Families: IPv4
  10. IP: 10.101.211.61
  11. IPs: 10.101.211.61
  12. Port: <unset> 8080/TCP
  13. TargetPort: 8080/TCP
  14. NodePort: <unset> 30977/TCP
  15. Endpoints: 192.168.243.180:8080,192.168.243.189:8080
  16. Session Affinity: None
  17. External Traffic Policy: Cluster
  18. Events: <none
  1. [user@k8s-master-01 ~]$kubectl cluster-info
  2. Kubernetes control plane is running at https://k8s-endpoint.example.org:6443
  3. CoreDNS is running at https://k8s-endpoint.example.org:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
  1. user@k8s-master-01 ~]$ curl https://k8s-endpoint.example.org:30977
  2. curl: (7) Failed to connect to k8s-endpoint.example.org port 30977: Connection refused
  1. user@k8s-master-01 ~]$ curl 127.0.0.1:30977
  2. curl: (7) Failed to connect to 127.0.0.1 port 30977: Connection refused

It is the same when i am on the worker node. I have no open port 30977 on both nodes. I checked that with 'netstat'

So i have done the same on an eks to check this in a fast way. The result is the same.

Something went wrong here, do i need a load-balancer? Or is there something else missing that the learners should find out for themselves? In other labs I had the impression a few times that you were installing something like that, I can't find the problem here.

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Best Answer

  • Posts: 57
    Answer ✓

    @reactivan You simply didn't change port from 8080 to 80 -- that's why you don't have access via NodePort (nginx itself doesn't listen on 8080). See lab 9.1 p13.

    You can't see that port is listening via netstat, because it is routed via iptables.

Answers

  • Posts: 14
    edited June 2022

    Hello @reactivan

    On Lab Exercise 9.2, it is expected that we use curl with HTTP protocol, not HTTPS. On the other hand, it is important to use "http://" on your command (not only IP address).

    Have you tried "curl http://:NodePort"?

    Leo

  • Posts: 5
    edited June 2022

    At fiist, sorry for the double post, i had problems with the markdown for the code examples. When I left the forum I thought it was only one post.

    I have not tried your command curl http://:30977 -but i tried it now for fun, it doesn't work. Also these::

    1. curl http://k8s-endpoint.example.org:30977
    2. curl http://k8s-endpoint:30977
    3. curl http://k8s-master-01:30977
    4. curl http://k8s-worker-01:30977
    5. curl http://k8s-master-01.example.org:30977
    6. curl http://k8s-worker-01.example.org:30977
    7. curl http://127.0.0.1:30977

    curl: (7) Failed to connect to * 30977: Connection refused
    It doesnt't work for me.

    As i say before, i checked with netstat on both nodes:

    1. # netstat -tulpn
    2. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    3. tcp 0 0 127.0.0.1:10257 0.0.0.0:* LISTEN 1693/kube-controlle
    4. tcp 0 0 0.0.0.0:179 0.0.0.0:* LISTEN 2541/bird
    5. tcp 0 0 127.0.0.1:10259 0.0.0.0:* LISTEN 1713/kube-scheduler
    6. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 757/sshd
    7. tcp 0 0 127.0.0.1:41383 0.0.0.0:* LISTEN 761/containerd
    8. tcp 0 0 127.0.0.1:10248 0.0.0.0:* LISTEN 981/kubelet
    9. ...

    there is no open Port 30977

  • Posts: 5

    It works now with a simpler setup:

    1. kubectl run echoserver --image=k8s.gcr.io/echoserver:1.10 --restart=Never --port=8080 -l app=echoserver
    2. kubectl create service nodeport echoserver --tcp=5005:8080

    This works with all commands like:

    1. curl http://k8s-endpoint.example.org:31861
    2. curl k8s-endpoint:31861
    3. curl 192.168.99.200:31861

    But i have to understand that i can't see the nodeport 31861 with netstat.

  • Posts: 5

    @oleksazhel said:
    @reactivan You simply didn't change port from 8080 to 80 -- that's why you don't have access via NodePort (nginx itself doesn't listen on 8080). See lab 9.1 p13.

    You can't see that port is listening via netstat, because it is routed via iptables.

    now I started again with 8.1 and understood the whole thing. Many Thanks!

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Categories

Upcoming Training