使用kubeconfig内联的helm命令

时间:2017-03-17 04:18:25

标签: azure-pipelines-release-pipeline deis kubernetes-helm

我正在尝试使用运行命令VSTS扩展在VSTS版本定义上执行helm命令,但问题是它无法在我配置的自定义生成代理上找到kubeconfig文件。我认为这是因为定义的构建步骤在一个单独的进程中运行。我跑的时候

kubectl config view

它给了我一个空的配置文件。只是想知道我是否可以在执行类似

的helm命令时内联提供kubeconfig文件
helm init --kubeconfig=kubeconfigpath

或者有什么方法可以在vsts发布过程中运行helm命令之前设置kubeconfig文件?

感谢任何帮助。感谢。

3 个答案:

答案 0 :(得分:4)

'helm init'命令通过读取$ KUBECONFIG变量(默认'〜/ .kube / config')并使用默认的Kubernetes上下文来发现您的Kubernetes集群的配置。如果您使用的是其他配置文件,则必须更改$ KUBECONFIG值,以便helm从正确的配置文件中获取有关您的集群的信息。

更改$ KUBECONFIG值

export KUBECONFIG=/path_to_your_kubeconfig_file

为安全起见,请使用--kube-contex标志指定当前上下文

helm init --kube-context CONTEXT_NAME --upgrade

使用

检查helm客户端和分蘖版本

helm version

答案 1 :(得分:0)

尝试通过kubectl命令指定kubeconfig文件。

kubectl config SUBCOMMAND
     

选项

-h, --help=false: help for config
      --kubeconfig="": use a particular kubeconfig file

另一方面,您可以尝试更改构建代理帐户(例如您的帐户)并检查它是否可以找到kubeconfig文件(权限问题)

答案 2 :(得分:0)

我正在使用WSL 2.0 Ubuntu,并使用在Ubuntu发行版中安装的其他云必备工具。

我很容易在Windows kubeconfig上成功使用kubectl,但是无法运行任何头盔版本:

        <app-accounts>Loading...</app-accounts>
  

Kubernetes主服务器运行在   https://kubernetes.docker.internal:6443 KubeDNS运行在   https://kubernetes.docker.internal:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

要进一步调试和诊断群集问题,请使用<div>

kubectl --kubeconfig /mnt/c/Users/Pavel/.kube/config cluster-info
  

NAME READY
  状态重启年龄   freenginx-nginx-ingress-controller-675bd7f48b-szd88 1/1
  运行0 3d22h   freenginx-nginx-ingress-default-backend-85c897bdd6-cjk4j 1/1
  正在运行0 3d22h mysql-1576664918-69dd8486b5-vb44p
  1/1运行0 4d2h pavel @ MSI:〜$ helm --kubeconfig   /mnt/c/Users/Pavel/.kube/config列表错误:未知标志:--kubeconfig

我希望头盔应具有相同的行为方式。如果我成功为使用WSL 2.0的用户节省了两次安装Kubernetes客户端实用程序的时间,