# \[Question\] Where and how to set the External IP Address of the LoadBalancer Service?

**URL:** <https://forum.weaviate.io/t/question-where-and-how-to-set-the-external-ip-address-of-the-loadbalancer-service/22165>\
**Category:** Support\
**Tags:** technical\
**Created:** [November 26, 2025, 8:43pm UTC](https://forum.weaviate.io/t/question-where-and-how-to-set-the-external-ip-address-of-the-loadbalancer-service/22165 "2025-11-26T20:43:56Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Raphy](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.weaviate.io/raphy/32/7779_2.png) [@Raphy](https://forum.weaviate.io/u/Raphy)\
**Post date:** [November 26, 2025, 8:43pm UTC](https://forum.weaviate.io/t/question-where-and-how-to-set-the-external-ip-address-of-the-loadbalancer-service/22165/1 "2025-11-26T20:43:56Z")

</div>

From my Cloud Provider got a LoadBalancer Service: an IPv4 Address xx.xx.xxx.xxx and Outbound IPv4 yy.yyy.y.y/14

Where exactly do I have to specify the IPv4 Address of the LoadBalancer Service ( I guess xx.xx.xxx.xxx) in [weaviate-helm/weaviate/values.yaml at main · weaviate/weaviate-helm · GitHub](https://github.com/weaviate/weaviate-helm/blob/main/weaviate/values.yaml) ?

---

<div class="post-metadata">

**Author:** ![DudaNogueira](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.weaviate.io/dudanogueira/32/7846_2.png) [@DudaNogueira](https://forum.weaviate.io/u/DudaNogueira)\
**Post date:** [November 26, 2025, 8:54pm UTC](https://forum.weaviate.io/t/question-where-and-how-to-set-the-external-ip-address-of-the-loadbalancer-service/22165/2 "2025-11-26T20:54:43Z")

</div>

hi @Raphy !!

Welcome to our community 🤗 !!

This information doesn’t go on Weaviate, but on the load balancer itself.

You should point http calls to 8080 and grpc calls to 50051 (Weviate default ports), as per our doc: [Docker | Weaviate Documentation](https://docs.weaviate.io/deploy/installation-guides/docker-installation#hosting)

Let me know if this helps!

Happy coding / deploying 😉

---

<div class="post-metadata">

**Author:** ![Raphy](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.weaviate.io/raphy/32/7779_2.png) [@Raphy](https://forum.weaviate.io/u/Raphy)\
**Post date:** [November 27, 2025, 7:56am UTC](https://forum.weaviate.io/t/question-where-and-how-to-set-the-external-ip-address-of-the-loadbalancer-service/22165/4 "2025-11-27T07:56:09Z")

</div>

Hi!

Control Panel of OVHcloud (my Cloud Provider) :

 ![image](https://canada1.discourse-cdn.com/flex027/uploads/weaviate/original/2X/6/689f246f771d872d048bf0e0b927c547affcfdf9.png)

I installed weaviate :

```auto
raphy@raohy:~/.talos/weaviate$ kubectl apply -f weaviate-storage.yaml 
persistentvolume/weaviate-volume created
raphy@raohy:~/.talos/weaviate$ helm -n weaviate upgrade --install "weaviate" weaviate/weaviate --values weaviate/values.yaml
Release "weaviate" does not exist. Installing it now.

```

But I do not get the LoadBalancer :

```auto
raphy@raohy:~/.talos/weaviate$ kubectl -n weaviate get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
weaviate-data-weaviate-0 Bound weaviate-volume 32Gi RWO local-storage <unset> 8s
raphy@raohy:~/.talos/weaviate$ kubectl -n weaviate get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE
weaviate-volume 32Gi RWO Retain Bound weaviate/weaviate-data-weaviate-0 local-storage <unset> 37s

raphy@raohy:~/.talos/weaviate$ kubectl -n weaviate get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
weaviate LoadBalancer 10.107.253.53 <pending> 8080:30828/TCP 11m
weaviate-grpc LoadBalancer 10.108.6.61 <pending> 50051:32125/TCP 11m
weaviate-headless ClusterIP None <none> 80/TCP 11m

raphy@raohy:~/.talos/weaviate$ kubectl -n weaviate describe svc weaviate
Name: weaviate
Namespace: weaviate
Labels: app.kubernetes.io/managed-by=Helm
                          app.kubernetes.io/name=weaviate
Annotations: meta.helm.sh/release-name: weaviate
                          meta.helm.sh/release-namespace: weaviate
Selector: app=weaviate
Type: LoadBalancer
IP Family Policy: SingleStack
IP Families: IPv4
IP: zz.zzz.zzz.zz
IPs: zz.zzz.zzz.zz
Port: http 8080/TCP
TargetPort: 8080/TCP
NodePort: http 30828/TCP
Endpoints:                
Session Affinity: None
External Traffic Policy: Cluster
Internal Traffic Policy: Cluster
Events: <none>

```

---

<div class="post-metadata">

**Author:** ![Raphy](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.weaviate.io/raphy/32/7779_2.png) [@Raphy](https://forum.weaviate.io/u/Raphy)\
**Post date:** [November 27, 2025, 7:56am UTC](https://forum.weaviate.io/t/question-where-and-how-to-set-the-external-ip-address-of-the-loadbalancer-service/22165/5 "2025-11-27T07:56:48Z")

</div>

![image](https://canada1.discourse-cdn.com/flex027/uploads/weaviate/original/2X/f/ffba5a6314747a7346352898907925ba71793780.png)

---

<div class="post-metadata">

**Author:** ![Raphy](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.weaviate.io/raphy/32/7779_2.png) [@Raphy](https://forum.weaviate.io/u/Raphy)\
**Post date:** [November 27, 2025, 7:59am UTC](https://forum.weaviate.io/t/question-where-and-how-to-set-the-external-ip-address-of-the-loadbalancer-service/22165/6 "2025-11-27T07:59:27Z")

</div>

![image](https://canada1.discourse-cdn.com/flex027/uploads/weaviate/original/2X/b/bd1bddf63c86112572dfe4735d39bcee2c31ed41.png)

---

<div class="post-metadata">

**Author:** ![Raphy](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.weaviate.io/raphy/32/7779_2.png) [@Raphy](https://forum.weaviate.io/u/Raphy)\
**Post date:** [November 27, 2025, 8:00am UTC](https://forum.weaviate.io/t/question-where-and-how-to-set-the-external-ip-address-of-the-loadbalancer-service/22165/7 "2025-11-27T08:00:39Z")

</div>

@DudaNogueira those are my settings in my OVHcloud control panel. What am I doing wrong and/or missing? How to make the LoadBalancer service work?

---

<div class="post-metadata">

**Author:** ![Raphy](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.weaviate.io/raphy/32/7779_2.png) [@Raphy](https://forum.weaviate.io/u/Raphy)\
**Post date:** [November 27, 2025, 9:32am UTC](https://forum.weaviate.io/t/question-where-and-how-to-set-the-external-ip-address-of-the-loadbalancer-service/22165/8 "2025-11-27T09:32:16Z")

</div>

@DudaNogueira I do not understand this:

If I add in `weaviate/values.yaml` : `externalIPs: ["xx.xx.xxx.xxx"]` :

```auto
service:
  name: weaviate
  ports:
    - name: http
      protocol: TCP
      port: 8080
      # Target port is going to be the same for every port
  type: LoadBalancer
  externalIPs: ["xx.xx.xxx.xxx"]
  loadBalancerSourceRanges: []
  # optionally set cluster IP if you want to set a static IP
  clusterIP:
  #externalIPs: "51.68.117.154"
  annotations: {}

# The service controls how weaviate gRPC endpoint is exposed to the outside world.
# If you don't want a public load balancer, you can also choose 'ClusterIP' or `NodePort`
# to make weaviate gRPC port be only accessible within your cluster.
# This service is by default enabled but if you don't want it to be deployed in your
# environment then it can be disabled by setting enabled: false option.
grpcService:
  enabled: true
  name: weaviate-grpc
  ports:
    - name: grpc
      protocol: TCP
      port: 50051
      # Target port is going to be the same for every port
  type: LoadBalancer
  externalIPs: ["xx.xx.xxx.xxx"]
  loadBalancerSourceRanges: []
  # optionally set cluster IP if you want to set a static IP
  clusterIP:

```

I do not get the External-IP for the LoadBalancer Services :

```auto
raphy@raohy:~/.talos/weaviate$ kubectl -n weaviate get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
weaviate LoadBalancer yy.yyy.yy.yyy <pending> 8080:31822/TCP 2m40s
weaviate-grpc LoadBalancer yy.yyy.yy.yyy <pending> 50051:31085/TCP 2m40s
weaviate-headless ClusterIP None <none> 80/TCP 2m40s
raphy@raohy:~/.talos/weaviate$ 

```

But if I do **not** insert externalIPs: [“xx.xx.xxx.xxx”] into LoadBalancer Services in `weaviate/values.yaml` :

```auto
service:
  name: weaviate
  ports:
    - name: http
      protocol: TCP
      port: 8080
      # Target port is going to be the same for every port
  type: LoadBalancer
  loadBalancerSourceRanges: []
  # optionally set cluster IP if you want to set a static IP
  clusterIP:
  #externalIPs: "51.68.117.154"
  annotations: {}

# The service controls how weaviate gRPC endpoint is exposed to the outside world.
# If you don't want a public load balancer, you can also choose 'ClusterIP' or `NodePort`
# to make weaviate gRPC port be only accessible within your cluster.
# This service is by default enabled but if you don't want it to be deployed in your
# environment then it can be disabled by setting enabled: false option.
grpcService:
  enabled: true
  name: weaviate-grpc
  ports:
    - name: grpc
      protocol: TCP
      port: 50051
      # Target port is going to be the same for every port
  type: LoadBalancer
  loadBalancerSourceRanges: []
  # optionally set cluster IP if you want to set a static IP
  clusterIP:
  annotations: {}

```

install the plain weaviate/values.yaml :

```auto
raphy@raohy:~/.talos/weaviate$ kubectl apply -f weaviate-storage.yaml 
persistentvolume/weaviate-volume created
raphy@raohy:~/.talos/weaviate$ 
raphy@raohy:~/.talos/weaviate$ helm -n weaviate upgrade --install "weaviate" weaviate/weaviate --values weaviate/values.yaml
Release "weaviate" does not exist. Installing it now.

raphy@raohy:~/.talos/weaviate$ kubectl -n weaviate get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
weaviate LoadBalancer aa.aaa.aa.aaa <pending> 8080:30481/TCP 80s
weaviate-grpc LoadBalancer bb.bbb.bbb.bb <pending> 50051:32275/TCP 80s
weaviate-headless ClusterIP None <none> 80/TCP 80s

```

And, then, apply, a patch to the services, setting the externalIPs:

```auto
raphy@raohy:~/.talos/weaviate$ kubectl -n weaviate patch svc weaviate -p '{"spec":{"externalIPs":["xx.xx.xxx.xxx"]}}'
service/weaviate patched
raphy@raohy:~/.talos/weaviate$ kubectl -n weaviate patch svc weaviate-grpc -p '{"spec":{"externalIPs":["xx.xx.xxx.xxx"]}}'
service/weaviate-grpc patched

```

Then the LoadBalancer services have their External-IP set:

```auto
raphy@raohy:\~/.talos/weaviate$ kubectl -n weaviate get svc
 NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
weaviate LoadBalancer aa.aaa.aa.aaa xx.xx.xxx.xxx 8080:30481/TCP 4m18s
weaviate-grpc LoadBalancer bb.bbb.bbb.bb xx.xx.xxx.xxx 50051:32275/TCP 4m18s
weaviate-headless ClusterIP None 80/TCP 4m18s

```

Why?
