kubernetes - 使用静态IP公开Ladbalancer

标签 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

最佳答案

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

Is it possible to replace the LoadBalancer Ingress with static IP?



首先,当Kubernetes要求LoadBalancer创建负载均衡器时,它就是您的云提供商创建的。您有a lot of annotations(一个是用于AWS的,但您的云提供商也应该有一个)会影响创建,并且EIPs for NLBs似乎是其中之一,但是我怀疑您在做什么

其次,type: LoadBalancer只是方便-不需要将Service暴露在集群之外。这是创建Servicetype: NodePort,然后创建外部负载均衡器资源,将群集中的所有节点与该负载均衡器关联,指向节点上的NodePort以便将来自外部世界的流量引入群集的替代方法。如果您已经有一个静态的IP负载平衡器,则可以更新其注册以指向现有my-service的NodePort分配,然后就可以重新开始工作了。

关于kubernetes - 使用静态IP公开Ladbalancer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62452557/

相关文章:

nginx - 在 AKS 中的现有 Nginx 入口 Controller 上设置 TLS

kubernetes - Nginx 入口 Controller - 无法观看 *v1.EndpointSlice :

php - virtctl 在通过命令行执行时有效,但在 php exec() 中无效

nginx - nginx-ingress适用于/,但不适用于子路径

kubernetes - Aks : Can we use Azure Dev Spaces to deploy Release build of Web app to Azure Kubernetes

kubernetes - 为 kubernetes 集群创建的新服务帐户无法执行到 Pod 中

kubernetes - 对 kubernetes 上的 ravendb 部署进行故障排除

azure - 在 Azure AKS 中使用 Kubernetes Ingress 有哪些优势

kubernetes - HashiCorp Vault 填充 kubernetes secret

kubernetes - kops 部署的自动现货定价