如何在使用kubectl工具时添加自定义http头



找不到任何问题。

我必须添加几个自定义http头来访问我的专用api服务器代理,但目前还没有线索。我错过什么了吗?

这是一个肮脏的硬编码破解,旨在向您展示如何获得您想要的结果——它不是一个经过充分审查的解决方案。这个方法将编译一个新版本的kubectl,它将添加您需要的头。也许它至少会给你一个跑步的想法。

我之所以想这么做,是因为我把我的k8s api端点放在了互联网上,并用Cloudflare Access保护了它。为了允许Cloudflare访问,让我通过钢墙,我需要传入两个标头,一个用于我的客户端id,另一个用于客户端机密。这最终像一个魅力一样发挥作用,这是有人可能想添加自定义标题的一种情况。

步骤:

  • 我假设你已经安装并设置了Go,如果没有,现在就去做
  • git克隆https://github.com/kubernetes/kubernetes.git(可能需要一段时间,它相当大(
  • cd kubernetes/stasting/src/k8s.io/client-go/transport/
  • 在您喜欢的代码编辑器中打开文件round_trippers.go
  • 搜索func (rt userAgentRoundTripper) RoundTrip(req http.Request) (*http.Response, error)
  • 通过添加类似以下req.Header.Set("Bob-Is", "cool")的行来添加所需的页眉
  • cd返回到根文件夹kubernetes/
  • cd cmd/kubectl/
  • 去构建自定义kubectl
  • 现在用进行测试/自定义kubectl获取ns--v=9
  • 在该输出中查找您添加到K8s-api的其余调用中的头,您应该在输出中看到-H "Bob-Is: cool"
  • 为了让这不是一个黑客,也许可以看看是否有办法添加一个你创建的kubectl插件,或者问k8s社区中的好心人如何让这个黑客方法更干净,或者添加客户头不是一个好主意。最坏的情况是,将您的自定义kubectl构建参数化,以引入您添加的新参数——自定义请求头,并使其更加干净

相关内容

  • 没有找到相关文章

最新更新