如何在k8s上公开自定义端口?

时间:2019-06-13 06:18:07

标签: kubernetes

我要部署的脚本默认侦听:4123,而k8s可能只暴露:80。如何暴露:4123以便我的脚本能够接受请求?

我尝试了端口转发,但是将:80转发到:4123时出现权限错误,并且k8s不允许部署监听:80的映像(因为它可能已经很忙了)

2 个答案:

答案 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