首先,我的 k8s 集群(EKS)中有一个 Deployment
。
我想向公众公开我的部署。
因此,我创建了 Load Balancer
服务类型,选择器高于 Deployment
。 ( LB 等级 = NLB)
然后我可以在我的 AWS 控制台上看到预配置的 NLB。 我的 NLB 侦听器在 80 端口侦听并指示目标组(具有两个工作节点)与端口 30603 映射;
我的意思是NLB:80 -> worker node:30603
。
所以我假设当我在云供应商(同样是 AWS)中配置我的 Load Balancer
时。
他们自动创建了 NodePort
服务类型并在部署之间与 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
和使用该 NodePort
创建 AWS NLB 与仅创建 Load Balancer
服务类型有什么不同吗?