通过代理使用 kubernetes 端口转发需要什么?

通过代理使用 kubernetes 端口转发需要什么?

我有一个 kubernetes 集群,可以通过 nginx 代理访问。

我可以kubectl get deployments -n kube-system毫无问题地做事。

但是,我尝试使用 helm。Helm 抛出了一个错误:

Error: forwarding ports: error upgrading connection: unable to upgrade connection: query parameter "port" is required

通过研究,这看起来像是 kubernetes 端口转发的一个错误。为了使 helm 正常工作,kubernetes 端口转发必须首先正常工作,即:

https://stackoverflow.com/questions/56864580/error-forwarding-ports-upgrade-request-required-error-in-helm-of-a-kubernete

确实,尝试:

kubectl -n kube-system port-forward <tiller-deploy-Pod> <some_port>:44134

无法通过代理工作。

那么...到底需要什么才能使 kubernetes 端口转发通过代理工作?

我是否需要在代理服务器上为端口 44134 设置 tcp 代理(例如 socat)?如果是这样,我是否只需将流量代理到 kubernetes 主服务器上的 44134?

答案1

不要通过 NGINX 来实现这一点。尝试直接与您的某个节点通信。即使您尝试通信的服务位于(假设)节点 No3 上,Kubernetes 内部代理服务也应该将其底层私有网络(flanneld 或您使用的任何网络堆栈)上的流量转发到正确的节点,而您却不会注意到。

相关内容