要解决“AWS EC2暴露的端口无法为Kubernetes转发的端口工作”的问题,您可以使用Kubernetes Service类型中的NodePort,并在AWS EC2实例上设置适当的安全组规则。
下面是一个解决方法的代码示例:
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
type: NodePort
selector:
app: my-app
ports:
- protocol: TCP
port: 8080
targetPort: 8080
在AWS EC2实例上,创建一个安全组,并允许来自Kubernetes节点的流量访问指定的NodePort端口(例如8080)。
确保AWS EC2实例所在的子网允许流量进出。
配置AWS EC2实例上的防火墙或网络访问控制列表(Network ACL),确保允许来自Internet的流量访问指定的NodePort端口。
这样,您就可以通过访问AWS EC2实例的公共IP和指定的NodePort端口来访问Kubernetes Service。
请注意,这只是一个示例解决方案,实际实施中可能需要根据您的环境和需求进行适当调整。