aws - loadbalacing

本文阐述了当负载均衡器面向公网时,在子网路由表中必须配置IGW而非NAT网关的重要性。通过理解这一配置原则,可以确保流量正确地从互联网导向负载均衡器。
443和446是同样的证书,修改成这样可行吗: apiVersion: v1 kind: Service metadata: name: vms-core-server-cloud-access-pa-fw-v1 namespace: dev3-vms annotations: service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags: “Category=dev,Product=vms,ServiceType=biz” service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:ap-southeast-1:242777933053:certificate/74ff9ed2-8bcc-492d-b845-15308bace4e8 service.beta.kubernetes.io/aws-load-balancer-ssl-negotiation-policy: “ELBSecurityPolicy-TLS13-1-2-Res-2021-06” service.beta.kubernetes.io/aws-load-balancer-ssl-ports: “443” service.beta.kubernetes.io/aws-load-balancer-type: “external” service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: “ip” service.beta.kubernetes.io/aws-load-balancer-scheme: “internet-facing” labels: app.kubernetes.io/name: vms-core-server region: ap-southeast-1 spec: loadBalancerClass: service.k8s.aws/nlb selector: app.kubernetes.io/name: vms-core-server region: ap-southeast-1 ports: - port: 443 protocol: TCP name: cloud-access-443 targetPort: cloud-access - port: 446 protocol: TCP name: cloud-access-446 targetPort: cloud-access-short type: LoadBalancer externalTrafficPolicy: Cluster apiVersion: v1 kind: Service metadata: name: vms-core-server-cloud-access-pa-fw-v2 namespace: dev3-vms annotations: service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags: “Category=dev,Product=vms,ServiceType=biz” service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:ap-southeast-1:242777933053:certificate/e667c161-e7b0-4faa-a21e-23df5cb5f2d4 service.beta.kubernetes.io/aws-load-balancer-ssl-negotiation-policy: “ELBSecurityPolicy-TLS13-1-2-Res-2021-06” service.beta.kubernetes.io/aws-load-balancer-ssl-ports: “443” service.beta.kubernetes.io/aws-load-balancer-type: “external” service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: “ip” service.beta.kubernetes.io/aws-load-balancer-scheme: “internet-facing” labels: app.kubernetes.io/name: vms-core-server region: ap-southeast-1 spec: loadBalancerClass: service.k8s.aws/nlb selector: app.kubernetes.io/name: vms-core-server region: ap-southeast-1 ports: - port: 443 protocol: TCP name: cloud-access-443 targetPort: cloud-access - port: 446 protocol: TCP name: cloud-access-446 targetPort: cloud-access-short type: LoadBalancer externalTrafficPolicy: Cluster
最新发布
10-18
<think>我们有两个Service:v1和v2。现在要在每个Service上添加446端口,并且使用相同的证书(因为443和446使用同样的证书)。 修改点: 1. 在metadata.annotations中,修改`service.beta.kubernetes.io/aws-load-balancer-ssl-ports`注解,将原来的"443"改为"443,446",以指示NLB在443和446端口上启用SSL。 2. 在spec.ports下新增一个端口项,端口为446,协议TCP,名称自定义(如cloud-access-446),目标端口为cloud-access-short(对应service-monitor.yaml中的8084端口)。 但是,注意:当前配置中,两个Service的ssl-cert注解都只指定了一个证书ARN。由于两个端口使用相同的证书,这是可行的,因为同一个证书可以同时绑定到多个端口。 因此,您提供的修改配置中,缺少了对注解`service.beta.kubernetes.io/aws-load-balancer-ssl-ports`的更新(仍然为"443"),需要修改为"443,446"。 修改后的正确配置应为(以v1为例): ```yaml apiVersion: v1 kind: Service metadata: name: vms-core-server-cloud-access-pa-fw-v1 namespace: dev3-vms annotations: service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags: “Category=dev,Product=vms,ServiceType=biz” service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:ap-southeast-1:242777933053:certificate/74ff9ed2-8bcc-492d-b845-15308bace4e8 # 同一个证书 service.beta.kubernetes.io/aws-load-balancer-ssl-negotiation-policy: “ELBSecurityPolicy-TLS13-1-2-Res-2021-06” service.beta.kubernetes.io/aws-load-balancer-ssl-ports: “443,446” # 修改这里!!!将443改为443,446 service.beta.kubernetes.io/aws-load-balancer-type: “external” service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: “ip” service.beta.kubernetes.io/aws-load-balancer-scheme: “internet-facing” labels: app.kubernetes.io/name: vms-core-server region: ap-southeast-1 spec: loadBalancerClass: service.k8s.aws/nlb selector: app.kubernetes.io/name: vms-core-server region: ap-southeast-1 ports: - port: 443 protocol: TCP name: cloud-access-443 targetPort: cloud-access - port: 446 protocol: TCP name: cloud-access-446 targetPort: cloud-access-short # 注意:targetPort是字符串,对应Pod端口的名称(在service-monitor.yaml中cloud-access-short对应8084) type: LoadBalancer externalTrafficPolicy: Cluster ``` 同样,对v2的Service也做相同的修改(添加端口446和更新ssl-ports注解)。 因此,您提供的配置中,仅缺少更新注解`service.beta.kubernetes.io/aws-load-balancer-ssl-ports`的值。如果没有更新这个注解,那么446端口虽然被监听,但不会启用SSL,而是作为普通TCP端口(即不会解密密文流量),这会导致Pod接收加密流量(因为客户端是HTTPS)而无法处理。 所以,请务必更新该注解为`"443,446"`。 总结:您的修改配置中,除了注解`service.beta.kubernetes.io/aws-load-balancer-ssl-ports`的值未更新(仍为"443"),其他部分正确。更新该注解后,配置可行。 </think>### 回答 是的,您的修改方案**完全可行**,但需要补充一个关键步骤:必须同时在两个Service的`annotations`中更新`service.beta.kubernetes.io/aws-load-balancer-ssl-ports`注解,将其从`"443"`改为`"443,446"`。以下是完整分析和验证: #### 修改后的配置分析(以v1为例): ```yaml apiVersion: v1 kind: Service metadata: annotations: # 关键修改点:必须更新此行 ↓ service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443,446" # 原值为"443",需改为逗号分隔 service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:... # 证书ARN保持不变(443和446共享同一证书) # 其他注解保持不变... spec: ports: - port: 443 targetPort: cloud-access # 映射到8083端口 - port: 446 # 新增端口 name: cloud-access-446 targetPort: cloud-access-short # 映射到8084端口! # 其他配置保持不变... ``` #### 关键验证点: 1. **SSL端口注解更新**(必须修改): - 原配置中`service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"` **必须改为`"443,446"`**,否则AWS NLB不会为446端口启用HTTPS卸载。 - 未修改时,446端口将被视为普通TCP端口(未加密)。 2. **证书兼容性**: - 同一证书ARN可复用,AWS NLB会自动将证书绑定到`443`和`446`两个监听器。 3. **端口映射正确性**: - `targetPort: cloud-access-short` 正确引用`service-monitor.yaml`中的8084端口定义: ```yaml - name: cloud-access-short # 名称匹配 port: 8084 # 映射到Pod的8084端口 ``` 4. **双Service配置**: - `v1`和`v2` Service需同时修改,确保流量负载均衡。 #### 最终可行的配置修改: 仅需在**两个Service的`metadata.annotations`中**增加一行修改: ```diff service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443,446" ``` 其他部分完全符合您的YAML描述。应用后,AWS NLB将: - 在443端口接收HTTPS流量 → 转发到Pod的8083端口 - 在446端口接收HTTPS流量 → 转发到Pod的8084端口 > **风险提示**:修改后需监控现有443端口流量是否受影响,建议在低峰期操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值