Welcome to the Linux Foundation Forum!

LFD259 - Labs exercises and nodes preparation

Hi all,

I'm facing some issues during CP/WORKER nodes configuration.

Steps accomplished without issues:

  1. 2 KVM VMs created on my PC with 2 vCPUs and 4096MB of RAM;
  2. Ubuntu 18.04.5 LTS installed;
  3. SWAP commented in /etc/fstab;
  4. TAR downloaded (LFD259_V2021-06-15_SOLUTIONS.tar.xz) without issues;

Executing k8scp.sh, all updates are completed successfully, but KUBERNETES "cp" node initialization fails.
Investigating into the journal I've found this error:

"Jun 16 14:58:16 cp kernel: overlayfs: unrecognized mount option "metacopy=on" or missing value"

I've solved this issue removing "metacopy=on" from /etc/containers/storage.conf, but is this solution the right one?

After reboot of KUBERNETES starts without any issue:

student@cp:~$ kubectl get node
NAME STATUS ROLES AGE VERSION
cp Ready <none> 27m v1.21.1

CONTAINER STATE NAME
a64cce5302538 Running kube-controller-manager
c181c00f10f46 Running kube-apiserver
04c53077ff511 Running kube-scheduler
baf85e1387be7 Running etcd

I can see PODS but no ROLES are configured for node "cp".
Is something else missing?

Thanks to all in advance.

Massimiliano

Welcome!

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

Comments

  • Posts: 2,451

    Hi @MassimilianoGullusci,

    Another solution suggested a Kernel update to 5.4. However, I have not heard how this may impact (if at all) the rest of the lab exercises.

    Regards,
    -Chris

  • Thanks alot Chris.
    I'm trying to go on with that workaround, but still facing another issue.

    I've seen an ugly stacktrace into kube-scheduler container logs:

    W0620 11:34:07.572449 1 requestheader_controller.go:193] Unable to get configmap/extension-apiserver-authentication in kube-system. Usually fixed by 'kubectl create rolebinding -n kube-system ROLEBINDING_NAME --role=extension-apiserver-authentication-reader --serviceaccount=YOUR_NS:YOUR_SA'
    W0620 11:34:07.572579 1 authentication.go:336] Error looking up in-cluster authentication configuration: configmaps "extension-apiserver-authentication" is forbidden: User "system:kube-scheduler" cannot get resource "configmaps" in API group "" in the namespace "kube-system"
    W0620 11:34:07.572651 1 authentication.go:337] Continuing without authentication configuration. This may treat all requests as anonymous.
    W0620 11:34:07.572683 1 authentication.go:338] To require authentication configuration lookup to succeed, set --authentication-tolerate-lookup-failure=false
    ... ... stack trace ... ...
    E0620 11:34:11.369883 1 reflector.go:138] k8s.io/apiserver/pkg/server/dynamiccertificates/configmap_cafile_content.go:206: Failed to watch *v1.ConfigMap: failed to list *v1.ConfigMap: configmaps "extension-apiserver-authentication" is forbidden: User "system:kube-scheduler" cannot list resource "configmaps" in API group "" in the namespace "kube-system"
    I0620 11:34:15.348486 1 shared_informer.go:247] Caches are synced for client-ca::kube-system::extension-apiserver-authentication::client-ca-file
    I0620 11:34:15.749621 1 leaderelection.go:243] attempting to acquire leader lease kube-system/kube-scheduler...
    I0620 11:34:15.772647 1 leaderelection.go:253] successfully acquired lease kube-system/kube-scheduler

    kube-scheduler container is running, but I think, looking at the log that something went wrong.

    Some ideas?

    Thanks in advance

  • Hi @chrispokorni,

    thanks alot.
    I'm trying to go on using that workaround.

    I'm still facing another issue with kube-scheduler running but LOGS show a stacktrace with lots of errors:

    I0620 11:34:02.789645 1 serving.go:347] Generated self-signed cert in-memory
    W0620 11:34:07.572449 1 requestheader_controller.go:193] Unable to get configmap/extension-apiserver-authentication in kube-system. Usually fixed by 'kubectl create rolebinding -n kube-system ROLEBINDING_NAME --role=extension-apiserver-authentication-reader --serviceaccount=YOUR_NS:YOUR_SA'
    W0620 11:34:07.572579 1 authentication.go:336] Error looking up in-cluster authentication configuration: configmaps "extension-apiserver-authentication" is forbidden: User "system:kube-scheduler" cannot get resource "configmaps" in API group "" in the namespace "kube-system"
    W0620 11:34:07.572651 1 authentication.go:337] Continuing without authentication configuration. This may treat all requests as anonymous.
    W0620 11:34:07.572683 1 authentication.go:338] To require authentication configuration lookup to succeed, set --authentication-tolerate-lookup-failure=false
    I0620 11:34:07.611719 1 secure_serving.go:197] Serving securely on 127.0.0.1:10259
    I0620 11:34:07.613258 1 configmap_cafile_content.go:202] Starting client-ca::kube-system::extension-apiserver-authentication::client-ca-file
    ... ... ... ...
    E0620 11:34:10.740321 1 reflector.go:138] k8s.io/client-go/informers/factory.go:134: Failed to watch *v1.CSINode: failed to list *v1.CSINode: csinodes.storage.k8s.io is forbidden: User "system:kube-scheduler" cannot list resource "csinodes" in API group "storage.k8s.io" at the cluster scope
    E0620 11:34:10.943746 1 reflector.go:138] k8s.io/client-go/informers/factory.go:134: Failed to watch *v1.StatefulSet: failed to list *v1.StatefulSet: statefulsets.apps is forbidden: User "system:kube-scheduler" cannot list resource "statefulsets" in API group "apps" at the cluster scope
    E0620 11:34:11.369883 1 reflector.go:138] k8s.io/apiserver/pkg/server/dynamiccertificates/configmap_cafile_content.go:206: Failed to watch *v1.ConfigMap: failed to list *v1.ConfigMap: configmaps "extension-apiserver-authentication" is forbidden: User "system:kube-scheduler" cannot list resource "configmaps" in API group "" in the namespace "kube-system"
    I0620 11:34:15.348486 1 shared_informer.go:247] Caches are synced for client-ca::kube-system::extension-apiserver-authentication::client-ca-file
    I0620 11:34:15.749621 1 leaderelection.go:243] attempting to acquire leader lease kube-system/kube-scheduler...
    I0620 11:34:15.772647 1 leaderelection.go:253] successfully acquired lease kube-system/kube-scheduler

    I think it's failed.

    Ciould you help me to understand?

    Thanks.

    Max

  • Posts: 1,000

    Hello,

    If I read the above information correctly your nodes each have 4G of memory. If the control panel does not have enough resources odd things happen. What happens if you build the cp with 2cpu/8G?

    Regards,

  • edited June 2021

    Hi @serewicz ,

    thanks for your suggestion.
    Yes you are right, WEIRD things happen.

    Now "kube-scheduler" starts well, even if WARNING is present:

    1. I0620 15:33:58.425160 1 serving.go:347] Generated self-signed cert in-memory
    2. W0620 15:34:02.988872 1 requestheader_controller.go:193] Unable to get configmap/extension-apiserver-authentication in kube-system. Usually fixed by 'kubectl create rolebinding -n kube-system ROLEBINDING_NAME --role=extension-apiserver-authentication-reader --serviceaccount=YOUR_NS:YOUR_SA'
    3. W0620 15:34:02.988951 1 authentication.go:336] Error looking up in-cluster authentication configuration: configmaps "extension-apiserver-authentication" is forbidden: User "system:kube-scheduler" cannot get resource "configmaps" in API group "" in the namespace "kube-system"
    4. W0620 15:34:02.988969 1 authentication.go:337] Continuing without authentication configuration. This may treat all requests as anonymous.
    5. W0620 15:34:02.988979 1 authentication.go:338] To require authentication configuration lookup to succeed, set --authentication-tolerate-lookup-failure=false
    6. I0620 15:34:03.052332 1 secure_serving.go:197] Serving securely on 127.0.0.1:10259
    7. I0620 15:34:03.052438 1 configmap_cafile_content.go:202] Starting client-ca::kube-system::extension-apiserver-authentication::client-ca-file
    8. I0620 15:34:03.052461 1 shared_informer.go:240] Waiting for caches to sync for client-ca::kube-system::extension-apiserver-authentication::client-ca-file
    9. I0620 15:34:03.052485 1 tlsconfig.go:240] Starting DynamicServingCertificateController
    10. I0620 15:34:03.152922 1 shared_informer.go:247] Caches are synced for client-ca::kube-system::extension-apiserver-authentication::client-ca-file
    11. I0620 15:34:03.153118 1 leaderelection.go:243] attempting to acquire leader lease kube-system/kube-scheduler...
    12. I0620 15:34:19.672580 1 leaderelection.go:253] successfully acquired lease kube-system/kube-scheduler

    The last ISSUE I'm facing is "calico-node" doesn't startup cause:

    1. 2021-06-20 15:47:17.285 [INFO][8] startup/startup.go 465: Hit error connecting to datastore - retry error=Get "https://10.96.0.1:443/api/v1/nodes/foo": dial tcp 10.96.0.1:443: connect: connection refused

    But I can see ClusterIP service up:

    1. student@cp:~/LFD259/SOLUTIONS/s_02$ kubectl get services -o wide
    2. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
    3. kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 19m <none>

    Telnet on that IP:PORT succeed.
    VM network config is the following (I hope it's as expected):

    1. ... ...
    2. 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    3. link/ether 52:54:00:06:0e:16 brd ff:ff:ff:ff:ff:ff
    4. inet 10.2.0.49/24 brd 10.2.0.255 scope global dynamic ens3
    5. valid_lft 2485sec preferred_lft 2485sec
    6. inet6 fe80::5054:ff:fe06:e16/64 scope link
    7. valid_lft forever preferred_lft forever
    8. 3: cni0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    9. link/ether aa:03:2c:42:14:7d brd ff:ff:ff:ff:ff:ff
    10. inet 10.85.0.1/16 brd 10.85.255.255 scope global cni0
    11. valid_lft forever preferred_lft forever
    12. inet6 1100:200::1/24 scope global
    13. valid_lft forever preferred_lft forever
    14. inet6 fe80::a803:2cff:fe42:147d/64 scope link
    15. valid_lft forever preferred_lft forever
    16. ... ...

    I can add:

    1. student@cp:~/LFD259/SOLUTIONS/s_02$ kubectl describe svc kubernetes
    2. Name: kubernetes
    3. Namespace: default
    4. Labels: component=apiserver
    5. provider=kubernetes
    6. Annotations: <none>
    7. Selector: <none>
    8. Type: ClusterIP
    9. IP Family Policy: SingleStack
    10. IP Families: IPv4
    11. IP: 10.96.0.1
    12. IPs: 10.96.0.1
    13. Port: https 443/TCP
    14. TargetPort: 6443/TCP
    15. Endpoints: 10.2.0.49:6443
    16. Session Affinity: None
    17. Events: <none>
  • Hi @serewicz,

    SOLVED.
    Thanks, thanks, thanks, thanks and sorry to have not followed your guidelines from the first start.

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