Jaf*_*Jaf 4 portforwarding kubernetes minikube
我在本地计算机上使用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}]
Run Code Online (Sandbox Code Playgroud)
kubectl无法打开端口88,因为它是特权端口。所有<1024端口都需要特殊权限。
有很多方法可以解决您的问题。
kubectl port-forward sa-frontend 8888:80kubectl以root身份使用:(sudo kubectl port-forward sa-frontend 88:80不建议,然后kubectl将以root身份查找其配置)kubectl二进制文件打开特权端口的功能。该答案深入说明了如何执行此操作。如果您想使用第三个选项,可以通过以下简单方法:
sudo setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/kubectl
Run Code Online (Sandbox Code Playgroud)
这将允许kubectl打开任何端口,同时仍以普通用户的权限运行。您可以使用以下方法检查是否可行
sudo getcap /usr/bin/kubectl
/usr/bin/kubectl = cap_net_bind_service+eip
Run Code Online (Sandbox Code Playgroud)
请注意,这会将许可授予使用二进制文件的任何人。如果您希望获得更细粒度的权限,请使用authbind。
正如user48678 所提到的,您可以使用绕过限制sudo。
添加-E标志以通过环境。
mjafary$ sudo -E kubectl port-forward sa-frontend 88:80
Run Code Online (Sandbox Code Playgroud)
例如,如果不传递-E,KUBECONFIG则不会设置环境变量。
小智 -3
可能是您的本地主机 - 当需要 ipv4 时,本地计算机正在使用 ipv6。
错误侦听tcp4 127.0.0.1:88:绑定:权限被拒绝,无法创建侦听器:错误侦听tcp6 [::1]:88:绑定:权限被拒绝
请禁用 IPv6。
你能显示输出吗?:
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3197 次 |
| 最近记录: |