3.4 KiB
3.4 KiB
本文作者:丁辉
Helm部署Haproxy
介绍
HAProxy是一个功能强大的开源软件,专门用于提供高可用性、负载均衡以及基于TCP和HTTP应用的代理服务。
开始部署
节点名称 | IP |
---|---|
web1 | 192.168.1.10 |
web2 | 192.168.1.20 |
-
添加 Helm 仓库
helm repo add haproxytech https://haproxytech.github.io/helm-charts helm repo update
-
创建命名空间
kubectl create namespace haproxy
-
编写 values.yaml
vi haproxy-values.yaml
内容如下
config: | global log stdout format raw local0 maxconn 1024 defaults log global timeout client 60s timeout connect 60s timeout server 60s frontend fe_main bind :80 default_backend be_main backend be_main server web1 192.168.1.10:80 check server web2 192.168.1.20:80 check ingress: enabled: true servicePort: 80 className: "" # 指定 ingress 控制器, 不指定则需要集群内存在默认的 ingress 控制器 hosts: - host: # 域名 paths: - path: / pathType: Prefix tls: - secretName: haproxy-tls hosts: - # 域名
参数解释
配置部分 参数 解释 global log 应用全局日志配置,将日志输出到标准输出,并使用原始格式进行日志记录,日志级别为 local0。 maxconn 设置最大连接数为 1024。 defaults log 应用全局日志配置,将日志输出到标准输出,并使用原始格式进行日志记录,日志级别为 local0。 timeout client 设置客户端超时时间为 60 秒,即客户端连接到 HAProxy 但没有发送请求的最大时间。 timeout connect 设置连接超时时间为 60 秒,即连接到后端服务器的最大时间。 timeout server 设置服务器超时时间为 60 秒,即后端服务器响应客户端请求的最大时间。 frontend bind 在端口 80 上绑定,监听所有 IP 地址的流量。 default_backend 将所有来自前端的请求转发到名为 be_main 的后端。 backend server 定义两个后端服务器,分别为 web1 和 web2,它们的 IP 地址分别为 192.168.1.10 和 192.168.1.20,监听端口为 80,并且 HAProxy 会定期检查它们的健康状态。 -
创建Nginx证书secret
cert为.pem和.crt文件都可以
kubectl create secret tls haproxy-tls --key nginx.key --cert nginx.pem -n haproxy
-
部署
helm install haproxy haproxytech/haproxy -f haproxy-values.yaml -n haproxy
-
查看访问地址
kubectl get svc -n haproxy
卸载
-
卸载 haproxy
helm uninstall haproxy -n haproxy
-
删除命名空间
kubectl delete namespace haproxy