apiVersion: apps/v1
kind: Deployment
metadata:
  name: haproxy-controller
spec:
  replicas: 1
  selector:
    matchLabels:
      app: haproxy
  template:
    metadata:
      labels:
        app: haproxy
    spec:
      containers:
        - name: haproxy
          image: haproxy:latest
          ports:
            - containerPort: 36379 
              protocol: TCP
            - containerPort: 8080 
              protocol: TCP
          args:
            - "-f"
            - "/usr/local/etc/haproxy/haproxy.cfg" 
          volumeMounts:
            - name: haproxy-config
              mountPath: /usr/local/etc/haproxy
      volumes:
        - name: haproxy-config
          configMap:
            name: haproxy-config

---

apiVersion: v1
kind: Service
metadata:
  name: haproxy-service
spec:
  selector:
    app: haproxy
  ports:
    - name: tcp
      port: 6379
      targetPort: 6379
    - name: http
      port: 8080
      targetPort: 8080
  type: NodePort
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: haproxy-config
data:
  haproxy.cfg: |
    global
      daemon
      maxconn 10240

    defaults
      log stdout format raw local0
      retries         3           # 连接后端服务器失败重试次数,超过3次后会将失败的后端服务器标记为不可用。
      timeout connect 5000ms
      timeout client 50000ms
      timeout server 50000ms
      timeout check   10s           # 对后端服务器的检测超时时间 10秒
    listen stats                    # 定义监控页面
      mode  http
      bind  *:8080                  # 绑定容器内的8080端口
      stats refresh 5s              # 每1秒更新监控数据
      stats uri /stats              # 访问监控页面的uri

    frontend redis-in
      mode    tcp
      bind *:6379 
      #option  tcp-check
      #balance roundrobin
      default_backend tcp_out

    backend tcp_out
     mode    tcp
     option  tcp-check
     balance roundrobin
     server server0 sport-redis-cluster-0.sport-redis-cluster-headless.sport-dev.svc.cluster.local:6379 check inter 10s rise 3 fall 3 weight 1 # 替换为实际的后端服务IP和端口号
     server server1 sport-redis-cluster-1.sport-redis-cluster-headless.sport-dev.svc.cluster.local:6379 check inter 10s rise 3 fall 3 weight 1
     server server2 sport-redis-cluster-2.sport-redis-cluster-headless.sport-dev.svc.cluster.local:6379 check inter 10s rise 3 fall 3 weight 1
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐