Per instradare il traffico esterno verso pod in esecuzione in un cluster TKG 2.0, creare un servizio di tipo LoadBalancer. Il servizio di bilanciamento del carico espone un indirizzo IP pubblico da cui il traffico in entrata viene instradato ai pod.

È 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

  • Consultare la pagina sul tipo di servizio LoadBalancer della documentazione di Kubernetes.
  • Effettuare il provisioning di un cluster TKG.
  • Connettersi al cluster TKG.

Procedura

  1. 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"
    
  2. Applicare il file YAML.
    kubectl apply -f nginx-lbsvc.yaml
  3. 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
    
  4. 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.