【问题标题】:Is it possible to run kubectl within a container within the cluster?是否可以在集群内的容器内运行 kubectl?
【发布时间】:2020-02-18 13:16:24
【问题描述】:

我有一个 kubernetes 集群,我基本上有一个经过身份验证的 api,用于在集群内部署任务,而无需在本地设置 kubectl 等。我知道 Kubernetes api 的客户端库等,但是它们似乎并不支持所有不同的原语等(包括一些自定义的原语,如 Argo)。所以我只是想知道是否有一种方法可以在集群上的容器中有效地运行$ kubectl apply -f ./file.yml

显然我可以创建一个安装了 kubectl 的容器,但我只是想知道它如何“连接”到 Kubernetes 控制器?

【问题讨论】:

    标签: docker kubernetes istio


    【解决方案1】:

    是的,这是可能的。参考吊索容器。大三角帆是从 halyard 容器部署的。

    【讨论】:

    • 很好的例子!我以此为基础,我没有意识到您在部署后无需任何实际设置即可访问 kube api
    • 您只需要在 pod 中加载 kubectl 二进制文件。使用 serviceaccount secret(token 和 cert)可以访问 kube api。
    • 请让这个答案更完整,否则其他人仍然不明白怎么做。
    【解决方案2】:

    您可以从现有的中选择:https://hub.docker.com/search?q=kubectl&type=image

    【讨论】:

      【解决方案3】:

      我发现 roffe/kubectl 映像非常适合运行 kubectl apply -f 以部署到我的集群。但是,您确实需要使用“附加”到您的 ServiceAccount(以及在您的 kubectl 容器中命名的 serviceAccount)的 ClusterRole 和 ClusterRoleBinding 来部署到任何其他命名空间。

      【讨论】:

        猜你喜欢
        • 2018-11-07
        • 2020-01-24
        • 2017-07-27
        • 2016-05-27
        • 2021-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-03
        相关资源
        最近更新 更多