Welcome to the Linux Foundation Forum!

Build: Creating a deployment: Cannot deploy docker container from control plane node

blaket
blaket Posts: 10
edited May 2023 in LFD259 Class Forum

Hello, I'm on the Build section, trying to deploy an instance of my newly created image to my control plane.
when I run the kubectl create deployment command to create the image, it says
deployment.apps "simpleappdeploy" created
but then when I check my pods with kubectl get pods I get back
simpleappdeploy-7b7686dcdb-6676d 0/1 CrashLoopBackOff 1 (6s ago) 7s
I'm not sure what is going wrong.
I am able to deploy the container successfully locally on my local laptop using the exact same kubectl command, but for some reason the control plane node made by the specs in this class fails to get the simpleapp to run.
Does anyone have any suggestions for what I could check that could be causing this simpleapp to fail?
It is the app that just creates a log entry to a file every 5 seconds.

Comments

  • blaket
    blaket Posts: 10
    edited May 2023

    If it helps, when I run the kubectl describe command for the broken pod, the output is

    Name: simpleappdeploy-7b7686dcdb-grbqg
    Namespace: default
    Priority: 0
    Service Account: default
    Node: ip-172-31-30-3/172.31.30.3
    Start Time: Thu, 11 May 2023 15:40:32 +0000
    Labels: app=simpleappdeploy
    pod-template-hash=7b7686dcdb
    Annotations: cni.projectcalico.org/containerID: c4266db26f5f7105644c12f6735daf610c12373983fc5271fa5a2c97f9b0d018
    cni.projectcalico.org/podIP: 192.168.37.211/32
    cni.projectcalico.org/podIPs: 192.168.37.211/32
    Status: Running
    IP: 192.168.37.211
    IPs:
    IP: 192.168.37.211
    Controlled By: ReplicaSet/simpleappdeploy-7b7686dcdb
    Containers:
    simpleapp:
    Container ID: containerd://bf3f627cfe095f804d63c9965bcf8cc5d0bb9fc290c38983600bf3baf72b680e
    Image: blakethompson/simpleapp:1.0
    Image ID: docker.io/blakethompson/simpleapp@sha256:220983840b4fd5bf28ef80c47f0d445bab2bf2c3150aca52cb296dcbade04ba6
    Port:
    Host Port:
    State: Waiting
    Reason: CrashLoopBackOff
    Last State: Terminated
    Reason: Error
    Exit Code: 1
    Started: Thu, 11 May 2023 15:40:46 +0000
    Finished: Thu, 11 May 2023 15:40:46 +0000
    Ready: False
    Restart Count: 2
    Environment:
    Mounts:
    /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-4zzql (ro)
    Conditions:
    Type Status
    Initialized True
    Ready False
    ContainersReady False
    PodScheduled True
    Volumes:
    kube-api-access-4zzql:
    Type: Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds: 3607
    ConfigMapName: kube-root-ca.crt
    ConfigMapOptional:
    DownwardAPI: true
    QoS Class: BestEffort
    Node-Selectors:
    Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
    node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
    Events:
    Type Reason Age From Message
    ---- ------ ---- ---- -------
    Normal Scheduled 34s default-scheduler Successfully assigned default/simpleappdeploy-7b7686dcdb-grbqg to ip-172-31-30-3
    Normal Pulled 20s (x3 over 34s) kubelet Container image "blakethompson/simpleapp:1.0" already present on machine
    Normal Created 20s (x3 over 34s) kubelet Created container simpleapp
    Normal Started 20s (x3 over 33s) kubelet Started container simpleapp
    Warning BackOff 5s (x4 over 32s) kubelet Back-off restarting failed container simpleapp in pod simpleappdeploy-7b7686dcdb-grbqg_default(4461be56-558a-46be-b146-6aac9a722c72)

    And when I run kubectl logs {pod} the output is
    exec /usr/local/bin/python: exec format error

  • chrispokorni
    chrispokorni Posts: 2,354

    Hi @blaket,

    What infrastructure are you using for lab VMs, and did you follow all resources available in the course material (Infrastructure provisioning videos for AWS and GCP, and lab guide instructions) to properly configure any related services, such as VPC, SG, firewall, VM instance size, recommended guest OS, recommended Kubernetes version, etc?

    If the deployment is successful on one Kubernetes environment (seems local from your description), but unsuccessful on another (cloud maybe?), it is most likely a configuration difference between the two clusters that allows/prevents the container from running respectively.

    Regards,
    -Chris

  • blaket
    blaket Posts: 10
    edited May 2023

    Hi @chrispokorni, I think that I found the issue!
    I wasn't originally able to install docker using the sudo apt-install command, so I just made the docker image locally on my Mac.
    The problem was that when I pushed that image up to my dockerhub repository, the image then had a different platform from what the Ubuntu server uses.
    I went through the instructions here to install docker onto the ubuntu machine, recreated the image there, pushed the image back to the repository, and then found that I was able to successfully deploy the image to my worker node

  • chrispokorni
    chrispokorni Posts: 2,354

    Hi @blaket,

    Ah yes, the new ARM issues that seem to be frequently reported...

    Regards,
    -Chris

Categories

Upcoming Training