如何使用Skaffold转发特权端口



如何使Skaffold转发编号低于1024的特权/保护/特殊端口?在我的skaffold.yaml中我添加了:

portForward:
- resourceType: service
resourceName: foo
port: 80
localPort: 80

对于所有未保护的端口都可以正常工作,但在端口80的情况下,Skaffold会自动选择另一个未保护的端口而不是80

根据文档Skaffold在每个用户定义的端口上运行kubectl port-forward,因此我授予kubectl二进制文件使用sudo setcap CAP_NET_BIND_SERVICE=+eip /path/to/kubectl命令打开特权端口的能力。

直接运行kubectl port-forward services/foo 80:80时一切正常,但当我运行skaffold dev --port-forward时,它仍然选择另一个未受保护的端口。

我一直在Ubuntu 20.04上使用Skaffold v1.28.1Minikube v1.22.0

应该可以。我们改变了Skaffold的行为,以防止它分配系统端口(≤1024),但带有显式localPorts的用户定义端口转发仍然会被尊重。

你没有说你看到被分配的端口是什么,但我怀疑它们是端口4503-4533,其中你遇到了一个错误(#6312)。这个错误现在已经修复,并将在下一个版本中修复。你也可以使用"流血边缘"从HEAD构建的build:安装说明详细说明了从哪里获取这些预构建的二进制文件。

我通过授予为skaffoldkubectl二进制文件打开特权端口的能力来解决这个问题:

sudo setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/kubectl;
sudo setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/skaffold;

相关内容

  • 没有找到相关文章

最新更新