gpt4 book ai didi

amazon-web-services - 如何自定义由将 AWS NLB 用于 TCP 服务的 Kubernetes LoadBalancer 类型服务创建的安全组入口规则

转载 作者:行者123 更新时间:2023-12-04 08:05:04 24 4
gpt4 key购买 nike

我有一个 TCP 服务,它通过 AWS EKS 集群上的 Kubernetes 部署运行,并通过 LoadBalancer 类型的服务使用以下定义公开到互联网

apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: nlb
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
name: tcpservice
spec:
selector:
app: tcpapp
type: LoadBalancer
ports:
- port: 4453
targetPort: 4453
name: tcpport

由于负载均衡器类型为 NLB,因此必须在应用于节点本身的安全组上明确允许入口流量。安全组是这样创建的:
✔ ~$ aws ec2 describe-security-groups --group-ids sg-2645567125762c6e2 | jq '.SecurityGroups[0].IpPermissions[0]'
{
"FromPort": 32163,
"IpProtocol": "tcp",
"IpRanges": [
{
"CidrIp": "10.20.0.0/20",
"Description": "kubernetes.io/rule/nlb/health=afd5427b6058811ea989512627425a2e"
},
{
"CidrIp": "0.0.0.0/0",
"Description": "kubernetes.io/rule/nlb/client=afd5427b6058811ea989512627425a2e"
}
],
"Ipv6Ranges": [],
"PrefixListIds": [],
"ToPort": 32163,
"UserIdGroupPairs": []
}

所以现在我需要将“0.0.0.0/0”中的 CidrIp 更改为不同的块。我如何使用 kubernetes list 来做到这一点?我查看了 NetworkPolicy 和 Calico 文档,但这控制了到 Pod 的流量,而不是服务。我可以使用 AWS API 或手动更改它,但在重新部署服务时这些更改将丢失。

最佳答案

您需要在服务 list 中添加 loadBalancerSourceRanges 参数。

从文档:

为了限制哪些客户端 IP 可以访问网络负载均衡器,请指定 loadBalancerSourceRanges。

spec:
loadBalancerSourceRanges:
- "143.231.0.0/16"

https://v1-13.docs.kubernetes.io/docs/concepts/services-networking/service/

可以在此处找到代码的实现方式:

https://github.com/kubernetes/kubernetes/blob/9d6ebf6c78f406d8639aae189901e47562418071/pkg/api/service/util.go

关于amazon-web-services - 如何自定义由将 AWS NLB 用于 TCP 服务的 Kubernetes LoadBalancer 类型服务创建的安全组入口规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59002247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com