使用静态IP公开Ladbalancer

时间:2020-06-18 14:38:47

标签: kubernetes kubernetes-ingress

我了解我们可以将Serive作为负载均衡器公开。

kubectl expose deployment hello-world --type=LoadBalancer --name=my-service
kubectl get services my-service
 NAME         TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)    AGE
 my-service   LoadBalancer   10.3.245.137   104.198.205.71   8080/TCP   54s
 Namespace:      default
 Labels:         app.kubernetes.io/name=load-balancer-example
 Annotations:    <none>
 Selector:       app.kubernetes.io/name=load-balancer-example
 Type:           LoadBalancer
 IP:             10.3.245.137
 LoadBalancer Ingress:   104.198.205.71

我已经创建了一个静态IP。

是否可以用静态IP替换 LoadBalancer Ingress

1 个答案:

答案 0 :(得分:2)

tl; dr =是,但是尝试在Service资源中编辑IP并不能达到您的期望-只是向您报告世界的当前状态

是否可以用静态IP替换LoadBalancer Ingress?

首先,当Kubernetes要求LoadBalancer创建负载均衡器时,它就是您的云提供商创建的。您有a lot of annotations(这是一个适用于AWS的,但您的云提供商也应该有一个)会影响创建,并且看来EIPs for NLBs是其中的一员,但我怀疑这样做会如何你在问

第二,type: LoadBalancer只是方便-不需要将Service暴露在集群之外。替换为创建Service的{​​{1}},然后创建外部负载均衡器资源,将群集中的所有节点与该负载均衡器相关联,指向节点上的NodePort来从外界进入集群。如果您已经有一个静态的IP负载均衡器,则可以更新其注册以指向现有type: NodePort的NodePort分配,然后就可以重新使用