Per eseguire il provisioning di un bilanciamento del carico esterno in un cluster di Tanzu Kubernetes, è possibile creare un servizio di tipo LoadBalancer. Il servizio di bilanciamento del carico espone un indirizzo IP pubblico. Il traffico proveniente dal bilanciamento del carico esterno può essere indirizzato ai pod del cluster.

È possibile eseguire il provisioning di un bilanciamento del carico esterno per i pod Kubernetes esposti come servizi. Ad esempio, è possibile distribuire un container Nginx ed esporlo come servizio Kubernetes di tipo LoadBalancer.

Prerequisiti

Procedura

  1. Creare un binding del ruolo appropriato al PSP privilegiato predefinito. Vedere Esempio di binding del ruolo per il criterio di sicurezza pod.
  2. Creare il file YAML nginx-lbsvc.yaml seguente.
    Questo file YAML definisce un servizio Kubernetes di tipo LoadBalancer e distribuisce un container Nginx come bilanciamento del carico esterno per il servizio.
    kind: Service
    apiVersion: v1
    metadata:
      name: srvclb-ngnx
    spec:
      selector:
        app: hello
        tier: frontend
      ports:
      - protocol: "TCP"
        port: 80
        targetPort: 80
      type: LoadBalancer
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: loadbalancer
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: hello
      template:
        metadata:
          labels:
            app: hello
            tier: frontend
        spec:
          containers:
          - name: nginx
            image: "nginxdemos/hello"
    
  3. Applicare il file YAML.
    kubectl apply -f nginx-lbsvc.yaml
  4. Verificare la distribuzione del servizio Nginx.
    kubectl get services
    srvclb-ngnx è attivo con un indirizzo IP esterno e interno.
    NAME          TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)        AGE
    srvclb-ngnx   LoadBalancer   10.11.12.19      10.19.15.89     80:30818/TCP   18m
    
  5. Utilizzando un browser, immettere l'indirizzo IP esterno per il servizio Nginx LoadBalancer.
    Viene visualizzato il messaggio banner di NGINX e i dettagli del bilanciamento del carico.