本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

设置 NGINX 负载均衡器

NGINX 将被配置为第 4 层负载均衡器(TCP),将连接转发到您的 Rancher 节点之一。

在此配置中,负载均衡器位于您的节点前面。负载均衡器可以是任何能够运行 NGINX 的主机。

请勿将您的 Rancher 节点之一用作负载均衡器。

这些示例显示了负载均衡器被配置为将流量引导到三个 Rancher 服务器节点。如果 Rancher 安装在 RKE Kubernetes 集群上,则需要三个节点。如果 Rancher 安装在 K3s Kubernetes 集群上,则只需要两个节点。

安装 NGINX

首先在您想用作负载均衡器的节点上安装 NGINX。NGINX 为所有已知操作系统提供可用的软件包。测试过的版本是 1.141.15。有关安装 NGINX 的帮助,请参考他们的 安装文档

需要 stream 模块,使用官方 NGINX 软件包时该模块是可用的。请参考您的操作系统文档,了解如何在您的操作系统上安装和启用 NGINX stream 模块。

创建 NGINX 配置

安装 NGINX 后,您需要使用节点的 IP 地址更新 NGINX 配置文件 nginx.conf

  1. 将下面的代码示例复制并粘贴到您喜欢的文本编辑器中。将此文件另存为 nginx.conf

  2. nginx.conf 中,将 <IP_NODE_1><IP_NODE_2><IP_NODE_3> 在端口 80 和端口 443 两处出现的部分替换为您的节点 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;
            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>
            }
        }
    }
  3. nginx.conf 保存到您的负载均衡器,路径为:/etc/nginx/nginx.conf

  4. 通过运行以下命令加载更新到您的 NGINX 配置:

    # nginx -s reload

选项 - 以 Docker 容器运行 NGINX

您可以选择不在操作系统上以软件包形式安装 NGINX,而是将其作为 Docker 容器运行。将编辑后的 示例 NGINX 配置 保存为 /etc/nginx.conf,并运行以下命令以启动 NGINX 容器:

docker run -d --restart=unless-stopped \
  -p 80:80 -p 443:443 \
  -v /etc/nginx.conf:/etc/nginx/nginx.conf \
  nginx:1.14