<p>We have a .yaml file like this :</p>

<pre><code>apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: redis-master
  labels:
    app: redis
spec:
  selector:
    matchLabels:
      app: redis
      role: master
      tier: backend
  replicas: 1
  template:
    metadata:
      labels:
        app: redis
        role: master
        tier: backend
    spec:
      containers:
      - name: master
        image: k8s.gcr.io/redis:e2e  # or just image: redis
        resources:
          requests:
            cpu: 100m
            memory: 100Mi
        ports:
        - containerPort: 6379
</code></pre>

<p>I working with <code>kubeadm</code> and we have a master machine and a worker machine . When I start up the deployment and get the pods <code>kubectl get pods</code> it gives this :</p>

<pre><code>redis-master-57fc67768d-28kng   0/1     ImagePullBackOff   0          11s
</code></pre>

<p>Whats wrong with it?</p>

Majid Rajabi
<p><em>tl;dr;</em> There is no <code>e2e</code> tag for Redis, you need to use a valid tag</p>

<p>Kubernetes is requesting a container image from the repository that doesn't exist. While images for <code>redis</code> and <code>k8s.gcr.io/redis</code> do exist, you are telling Kubernetes (which is in turn telling Docker) to pull the image with the tag <code>e2e</code>, which does not exist. </p>

<p>You can find a listing of which tags are available for the <code>redis</code> image on <a href="https://hub.docker.com/r/library/redis/tags/" rel="nofollow noreferrer">Docker Hub</a>.</p>
