0

I have k8s cluster v1.24.4+rke2r1, created by Rancher. I have already installed MetalLB, but when I try create pod with nginx and assign LoadBalancer I still have:

Service is ready. Load balancer is being provisioned 

This is my pod and service config

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
  annotations:
    metallb.universe.tf/address-pool: public-ips
spec:
  selector:
    app: nginx
  ports:
    - port: 80
      targetPort: 80
  type: LoadBalancer

Pod

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    name: nginx
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.23.2-alpine
    resources:
      limits:
        memory: "128Mi"
        cpu: "500m"
    ports:
      - containerPort: 80

My MetalLB online config

configInline:
  address-pools:
    - addresses:
        - 192.168.1.100-192.168.1.200
      autoAssign: true
      name: public-ips
      protocol: layer2

When I describe my nginx-service I got

Name:                     nginx-service
Namespace:                metal-test
Labels:                   <none>
Annotations:              metallb.universe.tf/address-pool: public-ips
Selector:                 app=nginx
Type:                     LoadBalancer
IP Family Policy:         SingleStack
IP Families:              IPv4
IP:                       10.43.127.38
IPs:                      10.43.127.38
Port:                     <unset>  80/TCP
TargetPort:               80/TCP
NodePort:                 <unset>  30010/TCP
Endpoints:                10.42.212.79:80
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>

My service list

NAMESPACE         NAME                              TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
calico-system     calico-kube-controllers-metrics   ClusterIP      10.43.208.243   <none>        9094/TCP         21h
calico-system     calico-typha                      ClusterIP      10.43.230.52    <none>        5473/TCP         21h
cattle-system     cattle-cluster-agent              ClusterIP      10.43.198.73    <none>        80/TCP,443/TCP   21h
default           kubernetes                        ClusterIP      10.43.0.1       <none>        443/TCP          21h
default           nginx-service                     LoadBalancer   10.43.245.80    <pending>     8080:32146/TCP   66m
kube-system       rke2-coredns-rke2-coredns         ClusterIP      10.43.0.10      <none>        53/UDP,53/TCP    21h
kube-system       rke2-metrics-server               ClusterIP      10.43.84.128    <none>        443/TCP          21h
longhorn-system   csi-attacher                      ClusterIP      10.43.49.124    <none>        12345/TCP        3h29m
longhorn-system   csi-provisioner                   ClusterIP      10.43.236.132   <none>        12345/TCP        3h29m
longhorn-system   csi-resizer                       ClusterIP      10.43.153.211   <none>        12345/TCP        3h29m
longhorn-system   csi-snapshotter                   ClusterIP      10.43.182.109   <none>        12345/TCP        3h29m
longhorn-system   longhorn-admission-webhook        ClusterIP      10.43.49.242    <none>        9443/TCP         3h29m
longhorn-system   longhorn-backend                  ClusterIP      10.43.71.124    <none>        9500/TCP         3h29m
longhorn-system   longhorn-conversion-webhook       ClusterIP      10.43.180.185   <none>        9443/TCP         3h29m
longhorn-system   longhorn-engine-manager           ClusterIP      None            <none>        <none>           3h29m
longhorn-system   longhorn-frontend                 ClusterIP      10.43.95.1      <none>        80/TCP           3h29m
longhorn-system   longhorn-replica-manager          ClusterIP      None            <none>        <none>           3h29m
metallb           metallb-webhook-service           ClusterIP      10.43.211.242   <none>        443/TCP          178m

my metallb pod

NAME                                  READY   STATUS    RESTARTS       AGE
metallb-controller-6776dbc97d-kmkf9   1/1     Running   1 (177m ago)   177m
metallb-speaker-jrnmf                 1/1     Running   0   

I used this tutorial to install MetalLB http://xybernetics.com/techtalk/how-to-install-metallb-on-rancher-kubernetes-cluster/

I don't have any active firewall and I don't have nginx ingress on my cluster. Any idea what I do wrong? I do this on my local network.

PawelC
  • 1,128
  • 3
  • 21
  • 47
  • I think metallb helmcharts have stopped using `configInline` in values.yml files, now they are using CRDs for addresspool configuration. – P.... Oct 21 '22 at 13:58
  • @P.... Exactly :) When I add config in yml file, all works :D – PawelC Oct 24 '22 at 05:01
  • @P.... The only problem I have now is that I am assigned a local network IP, but I only have access to this IP from node master or worker. – PawelC Oct 24 '22 at 09:50
  • if you are using l2 mode, then you can choose the address pool of your choice – P.... Oct 24 '22 at 15:09

0 Answers0