首页 > 解决方案 > AWS 中的 Kubernetes 负载均衡器服务类型是否等于 NordPort + ELB(NLB)?

问题描述

首先,Deployment我的 k8s 集群(EKS)中有一个。我想向公众公开我的部署。所以,我Load Balancer用上面的选择器创建了服务类型Deployment。(LB类=NLB)

然后我可以在我的 AWS 控制台上看到预置的 NLB。我的 NLB 的监听器在 80 端口监听,并指示目标组(有两个工作节点)与端口 30603 的映射;

我的意思是NLB:80 -> worker node:30603

所以我假设当我配置我Load Balancer的云供应商(同样是 AWS)时。

他们自动创建NodePortService 类型并在 Deployment 之间与 NLB 连接。

像这样。 NLB:80 -> NodePort:30306 -> Deployment

NodePort但是在创建服务类型后我看不到任何服务Load Balancer 类型。

❯ kubectl get svc --all-namespaces
NAMESPACE     NAME            TYPE           CLUSTER-IP       EXTERNAL-IP                                                                     PORT(S)         AGE
default       kubernetes      ClusterIP      10.100.0.1       <none>                                                                          443/TCP         22h
default       nginx-service   LoadBalancer   10.100.124.116   xxxx.elb.us-west-2.amazonaws.com   80:30603/TCP    160m
kube-system   kube-dns        ClusterIP      10.100.0.10      <none>

所以我这样检查nginx-service

❯ kubectl describe svc nginx-service
Name:                     nginx-service
Namespace:                default
Labels:                   <none>
Annotations:              service.beta.kubernetes.io/aws-load-balancer-type: nlb
Selector:                 app=nginx
Type:                     LoadBalancer
IP Families:              <none>
IP:                       10.100.124.116
IPs:                      <none>
LoadBalancer Ingress:     a53cf3ff0507f44029248d267ddbc1e2-b687bfe561168a53.elb.us-west-2.amazonaws.com
Port:                     <unset>  80/TCP
TargetPort:               80/TCP
NodePort:                 <unset>  30603/TCP
Endpoints:                192.168.0.164:80,192.168.76.220:80
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

Load Balancer我的服务类型上有 NodePort 。

所以我只是困惑。

与仅创建服务类型之间的手动创建NodePort和制作 AWS NLB有什么不同吗?NodePortLoad Balancer

标签: amazon-web-servicesamazon-elbamazon-ekskubernetes-servicenlb

解决方案


推荐阅读