Welcome to the Linux Foundation Forum!

Lab 4.2 - containerd rather than docker

Is there a guide to using containerd rather than docker for running containers given it'll be removed in 1.24 and this lab currently uses 1.23?
https://kubernetes.io/blog/2022/01/07/kubernetes-is-moving-on-from-dockershim/

"LFS260/SOLUTIONS/s_04/k8scp.sh" sets up kubernetes using docker rather than containerd

Thanks!

Best Answers

  • Posts: 5
    edited May 2022 Answer ✓

    Fixed this by doing the following to both LFS260/SOLUTIONS/s_04/k8scp.sh and LFS260/SOLUTIONS/s_04/k8sWorker.sh

    Remove the following section


    and adding the following instead

    1. echo "Install and configure containerd"
    2. sleep 2
    3. sudo mkdir -p /etc/containerd
    4.  
    5. sudo apt install -y containerd
    6.  
    7. sudo containerd config default | sudo tee /etc/containerd/config.toml
    8.  
    9. sudo systemctl restart containerd
    10.  
    11. sudo systemctl enable containerd
    12.  

    and changing

    1. sudo apt-get install -y kubeadm=1.23.1-00 kubelet=1.23.1-00 kubectl=1.23.1-00

    to

    1. sudo apt-get install -y kubeadm=1.23.1-00 kubelet=1.23.1-00 kubectl=1.23.1-00 --allow-downgrades --allow-change-held-packages

    due to some issues with the node I was using.

    I hope this helps!

  • Posts: 5
    Answer ✓

    Fixed this by doing the following tto LFS260/SOLUTIONS/s_04/k8scp.sh

    Remove the following section

    1. echo "Install and configure Docker"
    2. sleep 2
    3.  
    4. sudo apt-get install -y docker.io
    5.  
    6. cat <<EOF | sudo tee /etc/docker/daemon.json
    7. {
    8. "exec-opts": ["native.cgroupdriver=systemd"],
    9. "log-driver": "json-file",
    10. "log-opts": {
    11. "max-size": "100m"
    12. },
    13. "storage-driver": "overlay2"
    14. }
    15. EOF
    16.  
    17. sudo systemctl enable docker
    18.  
    19. sudo systemctl daemon-reload
    20.  
    21. sudo systemctl restart docker

    and adding the following instead

    1. echo "Install and configure containerd"
    2. sleep 2
    3. sudo mkdir -p /etc/containerd
    4.  
    5. sudo apt install -y containerd
    6.  
    7. sudo containerd config default | sudo tee /etc/containerd/config.toml
    8.  
    9. sudo systemctl restart containerd
    10.  
    11. sudo systemctl enable containerd
    12.  

    and changing

    1. sudo apt-get install -y kubeadm=1.23.1-00 kubelet=1.23.1-00 kubectl=1.23.1-00

    to

    1. sudo apt-get install -y kubeadm=1.23.1-00 kubelet=1.23.1-00 kubectl=1.23.1-00 --allow-downgrades --allow-change-held-packages

    finally, change

    1. sudo kubeadm init --kubernetes-version 1.23.1 --pod-network-cidr 192.168.0.0/16 --cri-socket "unix:///var/run/containerd/containerd.sock"

    to

    1. sudo kubeadm init --kubernetes-version 1.23.1 --pod-network-cidr 192.168.0.0/16 --cri-socket "unix:///var/run/containerd/containerd.sock"

    For LFS260/SOLUTIONS/s_04/k8sWorker.sh

    Remove the following section

    1. echo "Install and configure Docker"
    2. sleep 2
    3.  
    4. sudo apt-get install -y docker.io
    5.  
    6. cat <<EOF | sudo tee /etc/docker/daemon.json
    7. {
    8. "exec-opts": ["native.cgroupdriver=systemd"],
    9. "log-driver": "json-file",
    10. "log-opts": {
    11. "max-size": "100m"
    12. },
    13. "storage-driver": "overlay2"
    14. }
    15. EOF
    16.  
    17. sudo systemctl enable docker
    18.  
    19. sudo systemctl daemon-reload
    20.  
    21. sudo systemctl restart docker

    and adding the following instead

    1. echo "Install and configure containerd"
    2. sleep 2
    3. sudo mkdir -p /etc/containerd
    4.  
    5. sudo apt install -y containerd
    6.  
    7. sudo containerd config default | sudo tee /etc/containerd/config.toml
    8.  
    9. sudo systemctl restart containerd
    10.  
    11. sudo systemctl enable containerd
    12.  

    and changing

    1. sudo apt-get install -y kubeadm=1.23.1-00 kubelet=1.23.1-00 kubectl=1.23.1-00

    to

    1. sudo apt-get install -y kubeadm=1.23.1-00 kubelet=1.23.1-00 kubectl=1.23.1-00 --allow-downgrades --allow-change-held-packages

    Finally, when running the kubeadm join command, add --cri-socket "unix:///var/run/containerd/containerd.sock"

    Eg

    ```bash

    sudo kubeadm join 172.31.254.12:6443 --token super.token --discovery-token-ca-cert-hash sha256:superCA --cri-socket "unix:///var/run/containerd/containerd.sock"

    I hope this helps!

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