EKS + NLB:`service.beta.kubernetes.io/aws-load-balancer-internal: true` 不适用于 `service.beta.kubernetes.io/aws-load-balancer-type: nlb`
EKS + NLB: `service.beta.kubernetes.io/aws-load-balancer-internal: true` not working with `service.beta.kubernetes.io/aws-load-balancer-type: nlb`
我有一个 EKS Kubernetes 1.16.x。包含三个标记为 kubernetes.io/role/elb: 1
的 public 子网和三个标记为 kubernetes.io/role/internal-elb: 1
的私有子网的集群
我正在尝试创建内部 NLB LoadBalancer 服务。在内部,我希望它托管在三个私有子网上,而不是三个 public 子网上。
我正在关注 https://docs.aws.amazon.com/eks/latest/userguide/load-balancing.html
上的文档
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: nlb
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
service.beta.kubernetes.io/aws-load-balancer-internal: true
name: grafana-nlb
namespace: prometheus
spec:
ports:
- name: service
port: 80
protocol: TCP
targetPort: 3000
selector:
app.kubernetes.io/instance: prom
app.kubernetes.io/name: grafana
type: LoadBalancer
如果我省略 service.beta.kubernetes.io/aws-load-balancer-internal: true
注释,一切似乎都能完美运行并产生我所期望的结果。我得到了一个仅托管在三个 public 子网上的 public NLB。我可以通过 aws elbv2 describe-load-balancers
、"Scheme": "internet-facing"
、"Type": "network",
.
通过 AWS cli 看到这一点
如果使用 service.beta.kubernetes.io/aws-load-balancer-internal: true
注释创建它,我将得到一个经典的 ELB 而不是 NLB,它仍然是 public。它有 "Scheme": "internet-facing"
并且仅托管在三个 public 子网上。使用 CLI,我可以看到 aws elb describe-load-balancers
的负载均衡器,但 aws elbv2 describe-load-balancers
看不到
这似乎是错误的行为。关于如何进行故障排除或继续操作的任何提示?
true
需要在yaml中引用为"true"
。
这个有效:
service.beta.kubernetes.io/aws-load-balancer-internal: "true"
这导致了我遇到的错误:
service.beta.kubernetes.io/aws-load-balancer-internal: true
我有一个 EKS Kubernetes 1.16.x。包含三个标记为 kubernetes.io/role/elb: 1
的 public 子网和三个标记为 kubernetes.io/role/internal-elb: 1
我正在尝试创建内部 NLB LoadBalancer 服务。在内部,我希望它托管在三个私有子网上,而不是三个 public 子网上。
我正在关注 https://docs.aws.amazon.com/eks/latest/userguide/load-balancing.html
上的文档apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: nlb
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
service.beta.kubernetes.io/aws-load-balancer-internal: true
name: grafana-nlb
namespace: prometheus
spec:
ports:
- name: service
port: 80
protocol: TCP
targetPort: 3000
selector:
app.kubernetes.io/instance: prom
app.kubernetes.io/name: grafana
type: LoadBalancer
如果我省略 service.beta.kubernetes.io/aws-load-balancer-internal: true
注释,一切似乎都能完美运行并产生我所期望的结果。我得到了一个仅托管在三个 public 子网上的 public NLB。我可以通过 aws elbv2 describe-load-balancers
、"Scheme": "internet-facing"
、"Type": "network",
.
如果使用 service.beta.kubernetes.io/aws-load-balancer-internal: true
注释创建它,我将得到一个经典的 ELB 而不是 NLB,它仍然是 public。它有 "Scheme": "internet-facing"
并且仅托管在三个 public 子网上。使用 CLI,我可以看到 aws elb describe-load-balancers
的负载均衡器,但 aws elbv2 describe-load-balancers
这似乎是错误的行为。关于如何进行故障排除或继续操作的任何提示?
true
需要在yaml中引用为"true"
。
这个有效:
service.beta.kubernetes.io/aws-load-balancer-internal: "true"
这导致了我遇到的错误:
service.beta.kubernetes.io/aws-load-balancer-internal: true