我们想将POD
暴露给外部IP。如果我们使用AWS LB
,它将对公众开放。有其他解决方案吗?
这是我到目前为止所做的:
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "testing"
},
"spec": {
"ports": [{
"port": 80,
"targetPort": 8080
}],
"selector": {
"app": "testing"
},
"type": "LoadBalancer"
}
}
我们希望仅将其公开给单个IP或一系列外部IP。
答案 0 :(得分:2)
您可以使用docs中记录的.spec.loadBalancerSourceRanges
键:
此字段获取IP CIDR范围的列表,Kubernetes将使用该范围配置防火墙例外。 Google Compute Engine,Google Kubernetes Engine,AWS Elastic Kubernetes服务,Azure Kubernetes服务和IBM Cloud Kubernetes服务当前支持此功能
答案 1 :(得分:0)
您可以使用ingress的kubernetes抽象,并使用nginx入口控制器作为该实现的实现。Nginx提供whitelisting的源IP范围。
AWS ALB ingress controller的注释alb.ingress.kubernetes.io/inbound-cidrs
确实提供了相同的功能。