<p>I have a Kubernetes cluster with 1 master node and 2 worker node. And I have another machine where I installed Helm. Actually I am trying to create Kubernetes resources using Helm chart and trying to deploy into remote Kubernetes cluster.</p>
<p>When I am reading about helm install command, I found that we need to use helm and kubectl command for deploying.</p>
<p>My confusion in here is that, when we using helm install, the created chart will deploy on Kubernetes and we can push it into chart repo also. So for deploying we are using Helm. But why we are using kubectl command with Helm?</p>

<p><strong>Helm 3:</strong> No Tiller. Helm install just deploys stuff using kubectl underneath. So to use helm, you also need a configured kubectl.</p>
<p><strong>Helm 2:</strong>
Helm/Tiller are client/server, helm needs to connect to tiller to initiate the deployment. Because tiller is not publicly exposed, helm uses kubectl underneath to open a tunnel to tiller. See here: <a href="https://github.com/helm/helm/issues/3745#issuecomment-376405184" rel="noreferrer">https://github.com/helm/helm/issues/3745#issuecomment-376405184</a>
So to use helm, you also need a configured kubectl. More detailed: <a href="https://helm.sh/docs/using_helm/" rel="noreferrer">https://helm.sh/docs/using_helm/</a></p>
<p><strong>Chart Repo</strong>: is a different concept (same for helm2 / helm3), it's not mandatory to use. They are like artifact storage, for example in quay.io application registry you can audit who pushed and who used a chart. More detailed: <a href="https://github.com/helm/helm/blob/master/docs/chart_repository.md" rel="noreferrer">https://github.com/helm/helm/blob/master/docs/chart_repository.md</a>. You always can bypass repo and install from src like: <code>helm install /path/to/chart/src</code></p>
