Welcome to the Linux Foundation Forum!

LFD259 - Updated to v1.22.1 (10.14.2021)

Hi,

LFD259 has been updated to Kubernetes v1.22.1. There is new content and labs to match the updated CKAD exam domains and competencies. To ensure you have access to the latest materials, please clear your cache.

Regards,
Flavia
The Linux Foundation Training Team

Welcome!

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

Comments

  • The line for /etc/containers/storage.conf needs to be restored. The absence of those lines ends up with the "worker" node failing to start up critical containers.

    1. diff --git a/SOLUTIONS/s_02/k8sSecond.sh b/SOLUTIONS/s_02/k8sSecond.sh
    2. index 44060c2..adc691f 100755
    3. --- a/SOLUTIONS/s_02/k8sSecond.sh
    4. +++ b/SOLUTIONS/s_02/k8sSecond.sh
    5. @@ -49,6 +49,9 @@ sudo apt-get update
    6. # Install cri-o
    7. sudo apt-get install -y cri-o cri-o-runc podman buildah
    8.  
    9. +# A bug fix to get past a cri-o update
    10. +sudo sed -i 's/,metacopy=on//g' /etc/containers/storage.conf
    11. +
    12. sleep 3
    13.  
    14. sudo systemctl daemon-reload

    kube-system pod/calico-node-djwk2 0/1 Init:0/3 0 4m23s
    kube-system pod/kube-proxy-dplzb 0/1 ContainerCreating 0 4m23s

    $ kubectl describe -n kube-system pod/calico-node-djwk2

    1. Events:
    2. Type Reason Age From Message
    3. ---- ------ ---- ---- -------
    4. Normal Scheduled 5m59s default-scheduler Successfully assigned kube-system/calico-node-djwk2 to worker
    5. Warning FailedCreatePodSandBox 5m56s kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = failed to mount container k8s_POD_calico-node-djwk2_kube-system_7e9aa728-8fe9-4a29-bedf-40988dff8741_0 in pod sandbox k8s_calico-node-djwk2_kube-system_7e9aa728-8fe9-4a29-bedf-40988dff8741_0(9ba0a861831c3a59c3382e17221fc83a63c2240fe3d6e12f1e9ca9355915637e): error creating overlay mount to /var/lib/containers/storage/overlay/0ddf29c0abf8761cf2aa6c28c1f4022e3064636ecb9ea95c7b04bbe8f0bcd2e0/merged, mount_data="nodev,metacopy=on,lowerdir=/var/lib/containers/storage/overlay/l/LAOCFIHBLQ5ZHEGKPTYC6N36OP,upperdir=/var/lib/containers/storage/overlay/0ddf29c0abf8761cf2aa6c28c1f4022e3064636ecb9ea95c7b04bbe8f0bcd2e0/diff,workdir=/var/lib/containers/storage/overlay/0ddf29c0abf8761cf2aa6c28c1f4022e3064636ecb9ea95c7b04bbe8f0bcd2e0/work": invalid argument

    $ kubectl describe -n kube-system pod/kube-proxy-dplzb

    1. Events:
    2. Type Reason Age From Message
    3. ---- ------ ---- ---- -------
    4. Normal Scheduled 7m33s default-scheduler Successfully assigned kube-system/kube-proxy-dplzb to worker
    5. Warning FailedCreatePodSandBox 7m30s kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = failed to mount container k8s_POD_kube-proxy-dplzb_kube-system_7fc66509-09a3-46e2-b118-39a7fe9c3139_0 in pod sandbox k8s_kube-proxy-dplzb_kube-system_7fc66509-09a3-46e2-b118-39a7fe9c3139_0(9975181c1522f44afbb0b34af0f6bbadfc90e3cefff42cda4cc434fbb93c235b): error creating overlay mount to /var/lib/containers/storage/overlay/85b1b5186e0d6506db20d5a31b9ddbdea0627ff19e0c6a411d30f30a2d82b3de/merged, mount_data="nodev,metacopy=on,lowerdir=/var/lib/containers/storage/overlay/l/LAOCFIHBLQ5ZHEGKPTYC6N36OP,upperdir=/var/lib/containers/storage/overlay/85b1b5186e0d6506db20d5a31b9ddbdea0627ff19e0c6a411d30f30a2d82b3de/diff,workdir=/var/lib/containers/storage/overlay/85b1b5186e0d6506db20d5a31b9ddbdea0627ff19e0c6a411d30f30a2d82b3de/work": invalid argument
  • Posts: 1,000

    Hello,

    Could you tell me about your environment. I am not seeing this error, but would like to understand where it could be found. Are you using VirtualBox or a cloud provider? What version of the OS are you using, etc?

    Regards,

  • TL;DR: these are Ubuntu 18.04 VMs, running on a KVM hypervisor

    Sure. These are Ubuntu 18.04 VMs, based off of upstream provided base cloud image. They are running on a Ubuntu 20.04 hypervisor.

    https://cloud-images.ubuntu.com/releases/bionic/release/ubuntu-18.04-server-cloudimg-amd64.img

    Here is the virt-install script (for the 'worker' VM; the 'cp' script is the same except for the --name argument):

    1. export OS_QCOW2=/var/lib/libvirt/images/worker.qcow2
    2. scp /home/ubuntu/_images/ubuntu-18.04-server-cloudimg-amd64.img root@colo4:$OS_QCOW2
    3. ssh root@colo4 qemu-img resize $OS_QCOW2 20G
    4.  
    5. virt-install \
    6. --connect qemu+ssh://root@colo4/system \
    7. --import \
    8. --virt-type kvm \
    9. --name worker \
    10. --ram 8192 \
    11. --cpu host-model \
    12. --vcpus 2 \
    13. --network bridge=br0,model=virtio \
    14. --disk path=$OS_QCOW2,format=qcow2 \
    15. --os-type=linux \
    16. --os-variant ubuntu18.04 \
    17. --autostart \
    18. --autoconsole text \
    19. --cloud-init user-data=./user-data,meta-data=./meta-data

    Post virt-install, this is running the following scripts from the 10-13 tarball:

    • LFD259/SOLUTIONS/s_02/k8scp.sh
    • LFD259/SOLUTIONS/s_02/k8sSecond.sh

    The problem arises after the 'kubeadm join ...' command. I am reproducing this right now. The absence of the 'sed' line results in:

    1. $ kubectl get pod -n kube-system
    2. NAME READY STATUS RESTARTS AGE
    3. calico-kube-controllers-75f8f6cc59-wj5rf 1/1 Running 0 12m
    4. calico-node-4knm9 1/1 Running 0 12m
    5. calico-node-5w7cd 0/1 Init:0/3 0 9m27s
    6. coredns-78fcd69978-26rtv 1/1 Running 0 12m
    7. coredns-78fcd69978-84hhb 1/1 Running 0 12m
    8. etcd-cp 1/1 Running 0 12m
    9. kube-apiserver-cp 1/1 Running 0 12m
    10. kube-controller-manager-cp 1/1 Running 0 12m
    11. kube-proxy-62qw2 0/1 ContainerCreating 0 9m27s
    12. kube-proxy-zbq87 1/1 Running 0 12m
    13. kube-scheduler-cp 1/1 Running 0 12m
  • Starting from scratch again, and restoring the 3 lines as shown in the diff in my original response, the problem goes away; the two "stuck" pods are created after a minute or so.

    k get pod -n kube-system -w

    calico-node-d99gh 1/1 Running 0 66s

    Let me know if more is needed from me on this, I'm happy to help.

  • @kingphil said:
    The line for /etc/containers/storage.conf needs to be restored. The absence of those lines ends up with the "worker" node failing to start up critical containers.

    1. diff --git a/SOLUTIONS/s_02/k8sSecond.sh b/SOLUTIONS/s_02/k8sSecond.sh
    2. index 44060c2..adc691f 100755
    3. --- a/SOLUTIONS/s_02/k8sSecond.sh
    4. +++ b/SOLUTIONS/s_02/k8sSecond.sh
    5. @@ -49,6 +49,9 @@ sudo apt-get update
    6. # Install cri-o
    7. sudo apt-get install -y cri-o cri-o-runc podman buildah
    8. +# A bug fix to get past a cri-o update
    9. +sudo sed -i 's/,metacopy=on//g' /etc/containers/storage.conf
    10. +
    11. sleep 3
    12. sudo systemctl daemon-reload

    kube-system pod/calico-node-djwk2 0/1 Init:0/3 0 4m23s
    kube-system pod/kube-proxy-dplzb 0/1 ContainerCreating 0 4m23s

    $ kubectl describe -n kube-system pod/calico-node-djwk2

    1. Events:
    2. Type Reason Age From Message
    3. ---- ------ ---- ---- -------
    4. Normal Scheduled 5m59s default-scheduler Successfully assigned kube-system/calico-node-djwk2 to worker
    5. Warning FailedCreatePodSandBox 5m56s kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = failed to mount container k8s_POD_calico-node-djwk2_kube-system_7e9aa728-8fe9-4a29-bedf-40988dff8741_0 in pod sandbox k8s_calico-node-djwk2_kube-system_7e9aa728-8fe9-4a29-bedf-40988dff8741_0(9ba0a861831c3a59c3382e17221fc83a63c2240fe3d6e12f1e9ca9355915637e): error creating overlay mount to /var/lib/containers/storage/overlay/0ddf29c0abf8761cf2aa6c28c1f4022e3064636ecb9ea95c7b04bbe8f0bcd2e0/merged, mount_data="nodev,metacopy=on,lowerdir=/var/lib/containers/storage/overlay/l/LAOCFIHBLQ5ZHEGKPTYC6N36OP,upperdir=/var/lib/containers/storage/overlay/0ddf29c0abf8761cf2aa6c28c1f4022e3064636ecb9ea95c7b04bbe8f0bcd2e0/diff,workdir=/var/lib/containers/storage/overlay/0ddf29c0abf8761cf2aa6c28c1f4022e3064636ecb9ea95c7b04bbe8f0bcd2e0/work": invalid argument

    $ kubectl describe -n kube-system pod/kube-proxy-dplzb

    1. Events:
    2. Type Reason Age From Message
    3. ---- ------ ---- ---- -------
    4. Normal Scheduled 7m33s default-scheduler Successfully assigned kube-system/kube-proxy-dplzb to worker
    5. Warning FailedCreatePodSandBox 7m30s kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = failed to mount container k8s_POD_kube-proxy-dplzb_kube-system_7fc66509-09a3-46e2-b118-39a7fe9c3139_0 in pod sandbox k8s_kube-proxy-dplzb_kube-system_7fc66509-09a3-46e2-b118-39a7fe9c3139_0(9975181c1522f44afbb0b34af0f6bbadfc90e3cefff42cda4cc434fbb93c235b): error creating overlay mount to /var/lib/containers/storage/overlay/85b1b5186e0d6506db20d5a31b9ddbdea0627ff19e0c6a411d30f30a2d82b3de/merged, mount_data="nodev,metacopy=on,lowerdir=/var/lib/containers/storage/overlay/l/LAOCFIHBLQ5ZHEGKPTYC6N36OP,upperdir=/var/lib/containers/storage/overlay/85b1b5186e0d6506db20d5a31b9ddbdea0627ff19e0c6a411d30f30a2d82b3de/diff,workdir=/var/lib/containers/storage/overlay/85b1b5186e0d6506db20d5a31b9ddbdea0627ff19e0c6a411d30f30a2d82b3de/work": invalid argument

    I agree with this. I am facing the same issue.
    I am using Virtualbox on Windows 11 Host with Ubuntu 18.04 Guest.

  • How come the course still uses the "master" term?

  • Posts: 916

    The Linux Foundation is fully on board with the "inclusive naming initiative" (https://inclusivenaming.org/ and has systematically implemented its guidelines every where it can in courses. Unfortunately, there are quite a few upstream projects that still use "master" and it is impossible to eliminate its use completely until they do, at which point the courses automatically will not be using these terms. It takes time, and even though CNCF is an initiator of the inclusive naming project, quite a few CNCF projects still use "master".

  • Faced this issue in Lab 2.3 I am running the nodes on GCP, ubuntu 18.04LTS.

  • @kingphil said:
    The line for /etc/containers/storage.conf needs to be restored. The absence of those lines ends up with the "worker" node failing to start up critical containers.

    1. diff --git a/SOLUTIONS/s_02/k8sSecond.sh b/SOLUTIONS/s_02/k8sSecond.sh
    2. index 44060c2..adc691f 100755
    3. --- a/SOLUTIONS/s_02/k8sSecond.sh
    4. +++ b/SOLUTIONS/s_02/k8sSecond.sh
    5. @@ -49,6 +49,9 @@ sudo apt-get update
    6. # Install cri-o
    7. sudo apt-get install -y cri-o cri-o-runc podman buildah
    8. +# A bug fix to get past a cri-o update
    9. +sudo sed -i 's/,metacopy=on//g' /etc/containers/storage.conf
    10. +
    11. sleep 3
    12. sudo systemctl daemon-reload

    kube-system pod/calico-node-djwk2 0/1 Init:0/3 0 4m23s
    kube-system pod/kube-proxy-dplzb 0/1 ContainerCreating 0 4m23s

    $ kubectl describe -n kube-system pod/calico-node-djwk2

    ```

    Confirming this post! Guys, please fix it in the "k8sSecond.sh", I have wasted more than an hour to figure out why the steps are not working on VMware fusion.

  • Hi @vardanm,

    The step works successfully in some tested cloud settings - AWS and GCP, while it seems to misbehave during local installations.

    Regards,
    -Chris

  • Posts: 1
    edited September 2023

    I believe I am experiencing this same issue still. @serewicz

  • Hi @t.white.ucf,

    Are you following the latest release of the lab guide? The "metacopy" reference is no longer part of any of the installation scripts. The course content release referenced by this discussion is close to two years old.

    Regards,
    -Chris

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