登录
首页 >  Golang >  Go问答

使用 HTTP 代理进行 Kubernetes go-client 的访问

来源:stackoverflow

时间:2024-03-21 16:27:25 156浏览 收藏

在使用 Kubernetes go-client 管理 GKE 集群时,如果客户端位于代理后面,需要配置客户端以通过代理发出所有 HTTP 请求。尽管 go-client 提供了配置传输的选项,但实现起来并不容易。

问题内容

我正在使用 kubernetes 的 go-client 来控制 GKE 集群上的部署,但该客户端将在代理后面运行,并且需要通过它发出所有互联网绑定请求。但我似乎找不到一种方法来配置我的 KubeClient 以通过代理发出所有 http 请求。

我的代码与此处的示例没有太大不同 - https://github.com/kubernetes/client-go/blob/master/examples/out-of-cluster-client-configuration/main.go


解决方案


当您使用配置 (kubernetes.newforconfig(config)) 设置新客户端时,您可以自定义传输:

proxyURL := url.URL{Host: proxy}
transport := http.Transport{Proxy: http.ProxyURL(&proxyURL), ....}
config.Transport = config.Transport

或者您可以使用 config.wraptransport:

  • 传输 http.roundtripper
  • wraptransport func(rt http.roundtripper) http.roundtripper

遗憾的是,使其工作并不简单,使用 http_proxyno_proxy 通常更容易。

本篇关于《使用 HTTP 代理进行 Kubernetes go-client 的访问》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>