我在本地机器上使用 minikube。使用 kubernetes 端口转发时出现此错误。任何人都可以帮忙吗?
mjafary$ kubectl port-forward sa-frontend 88:80
Unable to listen on port 88: All listeners failed to create with the following errors:
Unable to create listener: Error listen tcp4 127.0.0.1:88: bind: permission denied, Unable to create listener: Error listen tcp6 [::1]:88: bind: permission denied
error: Unable to listen on any of the requested ports: [{88 80}]
最佳答案
kubectl
无法打开端口 88,因为它是特权端口。所有<1024 的端口都需要特殊权限。
有很多方法可以解决您的问题。
kubectl port-forward sa-frontend 8888:80
kubectl
作为根:sudo kubectl port-forward sa-frontend 88:80
(不推荐,kubectl 会以 root 身份查找它的配置)kubectl
二进制打开特权端口的能力。 This answer深入解释了如何做到这一点。 如果你想选择第三个选项,这里有一个简短的方法:
sudo setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/kubectl
这会让
kubectl
打开任何端口,同时仍以普通用户的权限运行。您可以使用以下方法检查这是否有效sudo getcap /usr/bin/kubectl
/usr/bin/kubectl = cap_net_bind_service+eip
请注意,这会授予使用二进制文件的任何人的权限。如果您想要更细粒度的权限,请使用 authbind。
关于Kubernetes 端口转发 - 错误监听 tcp4 127.0.0.1 :88: bind: permission denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53775328/