将K8s POD暴露于单个/范围的外部IP



我们希望将我们的POD公开给外部IP。如果我们使用AWS LB,那么它将对公众可用。是否有其他解决方案?

以下是我迄今为止所做的:

{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "testing"
},
"spec": {
"ports": [{
"port": 80,
"targetPort": 8080
}],
"selector": {
"app": "testing"
},
"type": "LoadBalancer"
}
}

我们喜欢只将其暴露于单个IP或一系列外部IP。

您可以使用.spec.loadBalancerSourceRanges密钥,如文档中所述:

此字段采用IP CIDR范围的列表,Kubernetes将使用这些范围来配置防火墙例外。此功能目前在Google计算引擎、Google Kubernetes引擎、AWS Elastic Kubernete服务、Azure Kubernets服务和IBM Cloud Kubernette服务上受支持

您可以使用kubernetes的ingress抽象,并使用nginx ingress控制器作为其实现。Nginx提供源IP范围的白名单。

AWS ALB入口控制器有一个注释alb.ingress.kubernetes.io/inbound-cidrs,它确实提供了相同的功能。

最新更新