<p>I'm new to helm and Kubernetes world.
I'm working on a project using Docker, Kubernetes and helm in which I'm trying to deploy a simple Nodejs application using helm chart on Kubernetes.</p>

<p>Here's what I have tried:</p>

<p><strong>From <code>Dockerfile</code>:</strong></p>

<pre><code>FROM node:6.9.2
EXPOSE 30000
COPY server.js .
CMD node server.js
</code></pre>

<p>I have build the image, tag it and push it to the docker hub repository at: <code>MY_USERNAME/myhello:0.2</code></p>

<p>Then I run the simple commad to create a helm chart as:
<code>helm create mychart</code>
It created a mychart directory witll all the helm components.</p>

<p>Then i have edited the <code>values.yaml</code> file as:</p>

<pre><code>replicaCount: 1
image:
  repository: MY_USERNAME/myhello
  tag: 0.2
  pullPolicy: IfNotPresent

nameOverride: ""
fullnameOverride: ""

service:
  type: NodePort
  port: 80
  externalPort: 30000

ingress:
  enabled: false
  annotations: {}
    # kubernetes.io/ingress.class: nginx
    # kubernetes.io/tls-acme: "true"
  paths: []
  hosts:
    - chart-example.local
  tls: []
  #  - secretName: chart-example-tls
  #    hosts:
  #      - chart-example.local

resources: {}
  # We usually recommend not to specify default resources and to leave this as a conscious
  # choice for the user. This also increases chances charts run on environments with little
  # resources, such as Minikube. If you do want to specify resources, uncomment the following
  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  # limits:
  #  cpu: 100m
  #  memory: 128Mi
  # requests:
  #  cpu: 100m
  #  memory: 128Mi

nodeSelector: {}

tolerations: []

affinity: {}
</code></pre>

<p>After that I have installed the chart as:
<code>helm install --name myhelmdep01 mychart</code></p>

<p>and when run <code>kubectl get pods</code> 
it shows the <code>ErrImagePull</code></p>

<p>I have tried with by mentioning the image name as : <code>docker.io/arycloud/myhello</code>
in this case the image pulled successfully but there's another error comes up as:</p>

<blockquote>
  <p>Liveness probe failed: Get <a href="http://172.17.0.5:80/" rel="nofollow noreferrer">http://172.17.0.5:80/</a>: dial tcp 172.17.0.5:80: connect: connection refused</p>
</blockquote>

Abdul Rehman
<p>Run <code>kubectl describe pod &lt;yourpod&gt;</code> soon after the error occurs and there should be an event near the bottom of the output that tells you exactly what the image pull problem is.</p>

<p>Off the top of my head it could be one of these options:</p>

<ul>
<li>It's a private repo and you haven't provided the service account for the pod/deployment with the proper imagePullSecret</li>
<li>Your backend isn't docker or does not assume that non prefixed images are on hub.docker.com. Try this instead: <code>registry-1.docker.io/arycloud/myhello</code></li>
</ul>

<p>If you can find that error it should be pretty straight forward.</p>
