İç Yük Dengeleme

  • nginx.conf configmapte saklanarak tcp load balance özelliği kullanılabilir.

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-lb-conf
data:
  nginx.conf: |
    user nginx;
    worker_processes  1;
    events {
      worker_connections  50;
    }

    stream {
        upstream myservis_lb {
        server $host_ip1:9200;
        server $host_ip2:9200;
        server $host_ip3:9200;
      }
          server {
            listen     9200;
            proxy_pass myservis_lb;
        }
    }

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-lb-tcp
spec:
  selector:
    matchLabels:
      app: nginx-lb-tcp
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx-lb-tcp
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 9200
        volumeMounts:
            - name: nginx-lb-conf
              mountPath: /etc/nginx/nginx.conf
              subPath: nginx.conf
              readOnly: true
      volumes:
      - name: nginx-lb-conf
        configMap:
          name: nginx-lb-conf
          items:
            - key: nginx.conf
              path: nginx.conf

---
apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  ports:
  - port: 9200
    protocol: TCP
    targetPort: 9200
  selector:
    app: nginx-lb-tcp