F5Networks / f5-ipam-controller

The F5 IPAM Controller runs in an orchestration environment like Kubernetes to allocate IP addresses from an IPAM system to BIG-IP Virtual Servers. The purpose is to abstract complexity related to setting up BIG-IP from a networking perspective
Apache License 2.0
9 stars 16 forks source link

Deploying 20 Type LB services takes more than 3-4 minutes to deploy #105

Closed skenderidis closed 2 years ago

skenderidis commented 2 years ago

Setup Details

FIC Version : 0.1.6 CIS Version : 2.8.0
Orchestration: K8S Orchestration Version: 1.21

Description

A customer is deploying 45 type LB services (using 3 different ipamlabels) and reported back times that exceed 15 minutes to add and more to delete. I replicated the environment and I could observe that with 20 service LB (with a single ipamlabel) it takes more than 4 minutes to deploy. From the logs I observed that it takes CIS 4 minutes to send the declaration to BIGIP. Therefore the bottleneck is in CIS. Also the IP is assigned very quickly from FIC.

Steps To Reproduce

1) create a ipamlabel (Prod) and deploy the attached configuration 20-lb.yaml.txt

Actual Result

The whole process should not take more than few seconds.

Diagnostic Information

the IPAM deployment can be found below

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    name: f5-ipam
  name: f5-ipam
  namespace: kube-system
spec:
  replicas: 1
  selector:
    matchLabels:
      app: f5-ipam
  template:
    metadata:
      labels:
        app: f5-ipam
    spec:
      containers:
      - args:
        - --orchestration=kubernetes
        - --ip-range='{"Dev":"192.168.8.10-192.168.8.40","Prod":"192.168.8.60-192.168.8.142","oam":"192.168.8.143-192.168.8.150","sig":"192.168.8.151-192.168.8.160","prov":"192.168.8.161-192.168.8.172"}'
        - --log-level=DEBUG
        command:
        - /app/bin/f5-ipam-controller
        image: f5networks/f5-ipam-controller:0.1.6
        imagePullPolicy: IfNotPresent
        name: f5-ipam-controller
        terminationMessagePath: /dev/termination-log
        volumeMounts:
        - mountPath: /app/ipamdb
          name: samplevol
      securityContext:
        fsGroup: 1200
        runAsGroup: 1200
        runAsUser: 1200
      serviceAccount: bigip-ctlr
      serviceAccountName: bigip-ctlr
      volumes:
      - name: samplevol
        persistentVolumeClaim:
          claimName: pvc-local

Observations (if any)

trinaths commented 2 years ago

Created [CONTCNTR-3280] for internal tracking.

subbuv26 commented 2 years ago

closing this issue as it gets addressed at https://github.com/F5Networks/k8s-bigip-ctlr/issues/2484