# flexlb-kube-controller **Repository Path**: flexlb/flexlb-kube-controller ## Basic Information - **Project Name**: flexlb-kube-controller - **Description**: FlexLB kubernetes controller - **Primary Language**: Go - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: https://flexlb.gitee.io/ - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-04-06 - **Last Updated**: 2022-11-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FlexLB kubernetes controller FlexLB kubernetes controller to add load balancer endpoint for service ## Build ### Clone code ```sh git clone https://gitee.com/flexlb/flexlb-kube-controller.git ``` ### Build binary #### For Linux ```sh # build binary (for test purpose) make # build docker (for production purpose) docker build -t flexlb-kube-controller:0.4.1 . # push docker docker push flexlb-kube-controller:0.4.1 ``` ### Run #### Install CRDs ```sh # copy target kubernetes config to ~/.kube/config # install CRDs kubectl apply -f config/crd/bases ``` #### Run on the fly ```sh # set parameters NODEIP= export METRICS_BIND_ADDRESS=${NODEIP}:8000 export HEALTH_PROBE_BIND_ADDRESS=${NODEIP}:8001 export FLEXLB_TLS_CA_CERT=../certs/ca.crt export FLEXLB_TLS_CLIENT_CERT=../certs/client.crt export FLEXLB_TLS_CLIENT_KEY=../certs/client.key export FLEXLB_REFRESH_INTERVAL=30 export FLEXLB_NAMESPACE=kube-system export FLEXLB_TRAFFIC_NETWORK=192.168.1.0/24 # run on the fly make run ``` #### Deploy ```sh # install rbac kubectl apply -f config/rbac # edit config/controller/flexlb-client-certs.yaml, change to target flexlb-api client certificate base64 -w 0 ../certs/ca.crt base64 -w 0 ../certs/client.crt base64 -w 0 ../certs/client.key # install controller kubectl apply -f config/controller ``` #### Test ```sh # edit config/samples/crd_v1_flexlbcluster.yaml, change flex-api endpoint # create cluster config kubect apply -f config/samples/crd_v1_flexlbcluster.yaml # create instance manually kubectl apply -f config/samples/crd_v1_flexlbinstance.yaml # create a load-balancer service and test it ```