Create LoadBalancer services¶
Once MetalLB is installed you can create services of type LoadBalancer,
with MetalLB able to assign them an IP address from the IP address pools
configured in the system.
In the example that follows, we will create an NGINX deployment and a
LoadBalancer service:
Create a YAML file called
nginx.yaml:apiVersion: apps/v1 kind: Deployment metadata: name: nginx spec: selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1 ports: - name: http containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: nginx spec: ports: - name: http port: 80 protocol: TCP targetPort: 80 selector: app: nginx type: LoadBalancer
Create the deployment and service:
kubectl apply -f nginx.yaml
Example output:
deployment.apps/nginx created service/nginx created
Verify the IP assigned to the NGINX service:
kubectl get svc
Example output:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 74m nginx LoadBalancer 10.96.42.228 192.168.10.0 80:34072/TCP 20s