Wanneer jouw Kubernetes-project een loadbalancer nodig heeft, kun je een Kubernetes Service van het type 'LoadBalancer' aanmaken. Er wordt dan door het TransIP Kubernetes-platform automatisch een loadbalancer (op basis van ons HA-IP Pro platform) aangemaakt. Ook jouw Kubernetes Control Plane maakt gebruik van HA-IP Pro.
In deze handleiding laten we zien hoe je een LoadBalancer service aanmaakt via Kubectl en welke arguments je daaraan mee kunt geven.
Een LoadBalancer Service aanmaken
Wanneer je een Kubernetes Deployment host, kun je die exposen via HA-IP door een Service van het type LoadBalancer aan te maken. Vervang in het voorbeeld hieronder 'deploymentnaam' door de naam van jouw deployment (bijvoorbeeld 'webserver') en 'portnr' door het poortnummer dat door die service gebruikt wordt (bijvoorbeeld 80).
kubectl expose deploy deploymentenaam --port=portnr --type=LoadBalancer
Je krijgt een bevestiging te zien die er als volgt uitziet:
service/deploymentnaam exposed
De LoadBalancer zie je ook terug wanneer je de status van je service controleert met het commando:
kubectl get service/deploymentnaam
Je output ziet er dan ongeveer als volgt uit:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
webserver LoadBalancer 10.101.123.45 89-41-123-123.haip.transip.net 80:30058/TCP 13s
Het kan even duren voor de Cloud Control Manager de LoadBalancer heeft aangemaakt. Tot die tijd blijft het externe IP-adres zichtbaar.
LoadBalancer arguments
Wanneer je een service exposed werkt die automatisch, maar je kan het gedrag van je loadbalancer verder aanpassen door annotations in te stellen voor je service. De volgende opties zijn beschikbaar:
- De beschikbare annotaties zijn dezelfde als degene die beschikbaar zijn voor HA-IP Pro.
- LoadBalancer arguments kun je meegeven bij het maken van Kubernetes-objecten, zie onze handleiding over het maken van Kubernetes-objecten.
- service.beta.kubernetes.io/transip-loadbalancer-ptr: Stelt een Reverse DNS, of PTR-record in voor je HA-IP. Indien niet ingesteld wordt een standaard waarde gebruikt.
- service.beta.kubernetes.io/transip-loadbalancer-ipsetup: Controleert hoe verschillende IP protocol families geforward worden. Op dit moment zijn de enige opties ipv6to4 (default) en noipv6 voor respectievelijk het doorsturen van IPv6 verkeer naar een IPv4-adres, of het uitschakelen van IPv4-ondersteuning. Dual-stack clusters worden momenteel niet ondersteund.
- service.beta.kubernetes.io/transip-loadbalancer-protocol: Controleert het door HA-IP gebruikte protocol (default tcp). Beschikbare opties zijn tcp, http, proxy, https en http2.
- service.beta.kubernetes.io/transip-loadbalancer-mode: Stel de loadbalancing methode van de onderliggende HA-IP in (default roundrobin). Beschikbare opties zijn roundrobin, source en cookie.
- service.beta.kubernetes.io/transip-loadbalancer-tls-mode: Bepaalt de minimaal ondersteunde TLS versie (default tls12).
- service.beta.kubernetes.io/transip-loadbalancer-cookie: Wanneer je als loadbalancing-methode 'cookie' gebruikt, bepaalt dit de naam van de cookie.
- service.beta.kubernetes.io/transip-loadbalancer-ssl-mode: Bij gebruik van HTTP protocol modes, bepaalt deze optie of verkeer naar de nodes in het K8s-cluster SSL gebruiken of niet (default off). Beschikbare opties zijn off, on (controleert op SSL maar zonder controle van certificaten) en strict (SSL-controle met certificaat-controle)
- service.beta.kubernetes.io/transip-loadbalancer-healthcheck-interval: Bepaalt de interval in seconden voor de health checks die via TCP of HTTP worden uitgevoerd. De default en minimum waarde is 2.
-
service.beta.kubernetes.io/transip-loadbalancer-healthcheck-path: Stel een adres in dat gebruik wordt voor health checks bij gebruik van de HTTP mode. De default waarde is
/
en de ingestelde optie moet altijd beginnen met een/
. - service.beta.kubernetes.io/transip-loadbalancer-healthcheck-port: Overschrijft de poort waarop health checks worden uitgevoerd. Het opgeven van een geconfigureerde poort op de service vertaalt zich automatisch naar de bijbehorende poort op de node in het cluster (zie ook de output onder 'PORT(S)' in de vorige paragraaf. Wanneer deze optie niet geconfigureerd is, wordt de eerste (of enige) poort van de betreffende service gebruikt. Deze optie is alleen relevant voor de HTTP modus.
- service.beta.kubernetes.io/transip-loadbalancer-ignore: Markeert deze service om genegeerd te worden door de Cloud Controller Manager (default false). Dit is vooral nuttig wanneer je migreert van een controller naar een andere controller. Waardes kunnen zijn: 1, t, T, TRUE, true, True, 0, f, F, FALSE, false en False.