我要部署的脚本默认侦听:4123
,而k8s可能只暴露:80
。如何暴露:4123
以便我的脚本能够接受请求?
我尝试了端口转发,但是将:80
转发到:4123
时出现权限错误,并且k8s不允许部署监听:80
的映像(因为它可能已经很忙了)
答案 0 :(得分:0)
您可以选择在本地使用哪个端口,因此只需选择将本地端口8888
转发到容器中的端口4123
kubectl port-forward your-pod 8888:4123
您可以使用8888
或计算机上的任何其他免费端口。
答案 1 :(得分:0)
根据@fiunchinho的建议,本地端口转发可能会帮助您解决问题。在此命令中添加--address 0.0.0.0
使其可用于您的所有界面,如下所示:
$ kubectl port-forward --address 0.0.0.0 nginx-55bd7c9fd-6fpnx 8888:80
您也可以通过外部LoadBalancer公开它,如下所示:
kubectl expose <your-deploy> --port 80 --target-port 4123 --type LoadBalancer
注意:您必须具有云提供商才能使用type: LoadBalancer
。有关更多信息,请查看Kubernetes文档中的Cloud providers。
有关更多详细信息,请参见Kubernetes文档:
Forward a local port to a port on the pod
Exposing an External IP Address to Access an Application in a Cluster