10

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

kubectl config view

它给了我一个空的配置文件。只是想知道我是否可以在执行 helm 命令时提供 kubeconfig 文件内联

helm init --kubeconfig=kubeconfigpath

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

感谢任何帮助。谢谢。

4

3 回答 3

14

'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

于 2017-07-24T08:58:39.087 回答
1

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

kubectl config SUBCOMMAND

选项

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

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

于 2017-03-17T06:17:35.213 回答
0

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

我很容易成功地将 kubectl 与 Windows kubeconfig 一起使用,但未能运行任何 helm 版本:

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

Kubernetes master 运行在 https://kubernetes.docker.internal:6443 KubeDNS 运行在 https://kubernetes.docker.internal:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/代理人

要进一步调试和诊断集群问题,请使用kubectl cluster-info dump.

kubectl --kubeconfig /mnt/c/Users/Pavel/.kube/config get pods

NAME READY
STATUS RESTARTS AGE freenginx-nginx-ingress-controller-675bd7f48b-szd88 1/1
Running 0 3d22h freenginx-nginx-ingress-default-backend-85c897bdd6-cjk4j 1/1
Running 0 3d22h mysql-1576664918-69dd8486b5-vb44p
1/ 1 运行 0 4d2h pavel@MSI:~$ helm --kubeconfig /mnt/c/Users/Pavel/.kube/config list 错误:未知标志:--kubeconfig

我希望 helm 应该以相同的方式运行。如果我成功为使用 WSL 2.0 的用户节省了双重安装 Kubernetes 客户端实用程序的时间

于 2019-12-22T13:29:01.670 回答