配置 NGINX 负载均衡器
将 NGINX 配置为四层负载均衡器(TCP),用于将连接转发到 Rancher 节点。
在此配置中,负载均衡器位于节点的前面。负载均衡器可以是任何能运行 NGINX 的主机。
不要使用 Rancher 节点作为负载均衡器。 |
这些示例中,负载均衡器将流量转发到三个 Rancher Server 节点。如果 Rancher 安装在 RKE Kubernetes 集群上,则需要三个节点。如果 Rancher 安装在 K3s Kubernetes 集群上,则只需要两个节点。
安装 NGINX
首先,在要用作负载均衡器的节点上安装 NGINX。NGINX 有适用于所有已知操作系统的软件包。已测试的版本为 1.14
和 1.15
。如需获得安装 NGINX 的帮助,请参见安装文档。
stream
模块是必需的,NGINX 官方安装包包含了该模块。请参见你操作系统的文档,了解如何在操作系统上安装和启用 NGINX 的 stream
模块。
创建 NGINX 配置
安装 NGINX 后,使用节点的 IP 地址更新 NGINX 配置文件 nginx.conf
。
-
将以下的示例代码复制并粘贴到你使用的文本编辑器中。将文件保存为
nginx.conf
。 -
在
nginx.conf
中,将所有(端口 80 和端口 443)的<IP_NODE_1>
,<IP_NODE_2>
和<IP_NODE_3>
替换为你节点的 IP 地址。参见 NGINX 文档:TCP 和 UDP 负载均衡了解所有配置选项。
示例 NGINX 配置
worker_processes 4; worker_rlimit_nofile 40000; events { worker_connections 8192; } stream { upstream rancher_servers_http { least_conn; server <IP_NODE_1>:80 max_fails=3 fail_timeout=5s; server <IP_NODE_2>:80 max_fails=3 fail_timeout=5s; server <IP_NODE_3>:80 max_fails=3 fail_timeout=5s; } server { listen 80; proxy_pass rancher_servers_http; } } http { upstream rancher_servers_https { least_conn; server <IP_NODE_1>:443 max_fails=3 fail_timeout=5s; server <IP_NODE_2>:443 max_fails=3 fail_timeout=5s; server <IP_NODE_3>:443 max_fails=3 fail_timeout=5s; } server { listen 443 ssl; proxy_pass rancher_servers_https; ssl_certificate /path/to/tls.crt; ssl_certificate_key /path/to/key.key; location / { proxy_pass https://rancher_servers_https; proxy_set_header Host <rancher UI URL>; proxy_ssl_server_name on; proxy_ssl_name <rancher UI URL> } } }
-
将
nginx.conf
保存到你的负载均衡器的/etc/nginx/nginx.conf
路径上。 -
运行以下命令重新加载 NGINX 配置:
# nginx -s reload