Welcome to the Linux Foundation Forum!

Issue with any deployments on my new minikube cluster

Hello,
I'm following the content provided by the course, created a minikube cluster using the docker driver (it was easier than the virtualbox method for my environment). All good

$ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

minikube-m02
type: Worker
host: Running
kubelet: Running

Great! Then I tried my first deployment using this yaml file:

cat def-deploy.yaml 

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx-deployment
  template:
    metadata:
      labels:
        app: nginx-deployment
    spec:
      containers:
      - name: nginx
        image: nginx:1.20.2
        ports:
        - containerPort: 80

Applied this configuration : kubectl create -f def-deploy.yaml

all good... until I tried to check the pods:

kubectl get pods
NAME                                READY   STATUS              RESTARTS   AGE
nginx-deployment-594d7b4ff5-8gjf9   0/1     ImageInspectError   0          4s
nginx-deployment-594d7b4ff5-clbp2   0/1     ImageInspectError   0          4s
nginx-deployment-594d7b4ff5-tv4sm   0/1     ImageInspectError   0          4s

Then:

kubectl describe pod nginx-deployment-594d7b4ff5-8gjf9
Name:             nginx-deployment-594d7b4ff5-8gjf9
Namespace:        default
Priority:         0
Service Account:  default
Node:             minikube-m02/192.168.58.3
Start Time:       Wed, 19 Feb 2025 22:04:05 +0000
Labels:           app=nginx-deployment
                  pod-template-hash=594d7b4ff5
Annotations:      <none>
Status:           Pending
IP:               10.244.1.4
IPs:
  IP:           10.244.1.4
Controlled By:  ReplicaSet/nginx-deployment-594d7b4ff5
Containers:
  nginx:
    Container ID:   
    Image:          nginx:1.20.2
    Image ID:       
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Waiting
      Reason:       ImageInspectError
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-6hdk8 (ro)
Conditions:
  Type                        Status
  PodReadyToStartContainers   True 
  Initialized                 True 
  Ready                       False 
  ContainersReady             False 
  PodScheduled                True 
Volumes:
  kube-api-access-6hdk8:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
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      32s               default-scheduler  Successfully assigned default/nginx-deployment-594d7b4ff5-8gjf9 to minikube-m02
  Warning  InspectFailed  5s (x4 over 31s)  kubelet            Failed to inspect image "": rpc error: code = Unknown desc = short-name "nginx:1.20.2" did not resolve to an alias and no unqualified-search registries are defined in "/etc/containers/registries.conf"
  Warning  Failed         5s (x4 over 31s)  kubelet            Error: ImageInspectError

Why this vanilla install of minikube does not allow me to deploy anything successfully ?

Thank you,

Comments

  • chrispokorni
    chrispokorni Posts: 2,434

    Hi @fmiranda,

    Does your Minikube cluster deployed with the Docker driver have access to the internet? It is possible that it causes resolve issues and the image name alone cannot be resolved, therefore it was never pulled from the public Docker Hub registry.
    You may try to update the image name to docker.io/library/nginx:1.20.2. If the deployment is still unsuccessful, then your Docker nodes need to be inspected for connectivity.

    Regards,
    -Chris

  • Thank you @chrispokorni

    This is how my deployment yaml file looks like with your suggestions:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
      labels:
        app: nginx-deployment
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx-deployment
      template:
        metadata:
          labels:
            app: nginx-deployment
        spec:
          containers:
          - name: nginx
            image: docker.io/library/nginx:1.20.2
            ports:
            - containerPort: 80
    

    creating the deployment again:

    $ kubectl create -f def-deploy.yaml 
    deployment.apps/nginx-deployment created
    

    Checking the pods:

    fmiranda@kubernetes:~$ kubectl get pods
    NAME                                READY   STATUS              RESTARTS   AGE
    nginx-deployment-769f4c67db-7ltfw   0/1     ContainerCreating   0          3s
    nginx-deployment-769f4c67db-lk8bd   0/1     ContainerCreating   0          3s
    nginx-deployment-769f4c67db-qbhnk   0/1     ContainerCreating   0          3s
    
    

    Then:

    fmiranda@kubernetes:~$ kubectl get pods
    NAME                                READY   STATUS    RESTARTS   AGE
    nginx-deployment-769f4c67db-7ltfw   1/1     Running   0          5s
    nginx-deployment-769f4c67db-lk8bd   1/1     Running   0          5s
    nginx-deployment-769f4c67db-qbhnk   1/1     Running   0          5s
    

    It all works out now! wooohoo!

    Is this just with me? Or is this that needs to be updated in the course content?

    Thank you !!!

  • chrispokorni
    chrispokorni Posts: 2,434

    Hi @fmiranda,

    The name resolution issue you encountered is possibly attributed to the Docker driver and its networking limitations. I have not encountered this issue with hypervisor drivers, while launching applications imperatively with kubectl or declaratively from a manifest.
    There is a note, later on in the course however, when deploying an application from the Kubernetes Dashboard, that the image name may need to be prefixed by docker.io/library/, a known issue with earlier Dashboard versions.

    Regards,
    -Chris

Categories

Upcoming Training