首页 > 解决方案 > AWS ec2 暴露端口不适用于 Kubernetes 转发端口

问题描述

我是 devops 的新手。我创建了一台 ec2 机器并打开了端口 8080,而我正在运行一个简单的服务器,我可以公开访问它。

http://localhost:8080(来自 ec2 容器)=> hello world

http://ec2-15-206-178-112.ap-south-1.compute.amazonaws.com:8080 =>你好世界

现在我已经安装了一个 Kubernetes 服务器,可以在这个实例中使用 kubectl 访问它,我在其中一个 pod 上运行一个简单的服务器并将端口转发到 ec2 8080 端口。

kubectl 端口转发 pod/frontend-7496d5f6b8-clfx4 8080:80

现在从我的 Ec2 实例中我可以访问它

http://localhost:8080(来自 ec2 容器)=> 来自 pod 的 hello world

但我不能公开访问它(端口 8080 在我的安全组中打开)

http://ec2-15-206-178-112.ap-south-1.compute.amazonaws.com:8080 => 连接被拒绝

有人能指出我错过了什么吗?

标签: amazon-web-servicesnetworkingkubernetes

解决方案


默认情况下,Kubernetes 端口转发仅绑定到127.0.0.1. 这就是为什么您无法使用公共接口访问它的原因。

使用以下命令绑定到所有接口:

kubectl port-forward --address 0.0.0.0

您可以在此处查看相关的 GH 问题。


推荐阅读