【问题标题】:How to pass in kubernetes config into a docker run command?如何将 kubernetes 配置传递给 docker run 命令?
【发布时间】:2021-08-03 06:56:42
【问题描述】:

我想在安装了 kubectl 但尚未配置的 docker 容器上运行命令。

在我的本地机器上,我的 kubectl 已通过身份验证并配置为与 Google Cloud 上的 kubernetes 集群通信。

如果我运行命令:

docker run mycontainerimage kubectl get pods

我会收到回复的:

invalid configuration: no configuration has been provided

如何将我的 kubernetes 凭据/配置传递到本地计算机上运行的 docker 映像中?谢谢!

【问题讨论】:

    标签: docker kubernetes configuration


    【解决方案1】:

    你可以mount你的配置文件和-v进入容器

    docker run -v ~/.kube/config:/kube/config ...
    

    并设置环境变量KUBECONFIG

    docker run -v ~/.kube/config:/kube/config --env KUBECONFIG=/kube/config ...
    

    现在每个 kubectl 调用都应该使用挂载的配置文件。

    【讨论】:

    • 我在使用这个命令时遇到的问题是我的 .kube/config 文件引用了我本地机器上的一堆文件(证书和可执行文件),因为我使用 gcloud 来处理身份验证.因此,我没有收到此类文件或目录错误。
    【解决方案2】:

    实际上,Kubectl 配置/认证依赖于环境中的许多资源和符号链接来连接集群。

    我认为最好和最安全的解决方案是配置一个 VPN,在集群中提供安全的远程 SSH 访问并远程连接到 API-Server。

    Kubernetes 支持SocketXP,这里是关于如何Configure local kubectl to access remote Kubernetes cluster 的分步指南。

    【讨论】:

    • 这是错误的。一个字面上只需要一个文件和一个指向该文件的环境变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-03
    • 2017-04-13
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    • 2017-01-12
    相关资源
    最近更新 更多