1 - 准备主机和负载均衡器


根据我们的要求需提供三个离线环境的Linux主机,以便保证HA配置中启动Rancher,节点需要有权限访问私有镜像仓库和私有git代码存储库。

主机需求

访问节点需求端口需求了解HA安装的节点要求

推荐架构

  • Rancher的DNS应解析为第4层负载均衡器
  • Load Balancer应将端口TCP/80和TCP/443转发到Kubernetes集群中的所有节点。
  • Ingress控制器将HTTP重定向到HTTPS并终止端口TCP/443上的SSL/TLS请求。Rancher HA

二、配置负载均衡器(以NGINX为例)

我们将使用NGINX作为第4层负载均衡器(TCP)。NGINX会将所有连接转发到您的Rancher节点之一。

注意: 在此配置中,负载平衡器位于Rancher节点的前面,负载均衡器可以是任意能够运行NGINX的主机。不要使用任意一个Rancher节点作为负载均衡器节点,会出现端口冲突。

1、安装nginx

首先在负载均衡器主机上安装NGINX,NGINX具有适用于所有已知操作系统的软件包。有关安装NGINX的帮助,请查阅其安装文档nginx安装文档.

2、创建NGINX配置

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

  • 复制下面的代码到文本编辑器,保存为nginx.conf
  • nginx.conf配置中, 替换IP_NODE_1IP_NODE_2IP_NODE_3 为您主机真实的IP地址。

NGINX配置示例:

  1. worker_processes 4;
  2. worker_rlimit_nofile 40000;
  3. events {
  4. worker_connections 8192;
  5. }
  6. stream {
  7. upstream rancher_servers_http {
  8. least_conn;
  9. server <IP_NODE_1>:80 max_fails=3 fail_timeout=5s;
  10. server <IP_NODE_2>:80 max_fails=3 fail_timeout=5s;
  11. server <IP_NODE_3>:80 max_fails=3 fail_timeout=5s;
  12. }
  13. server {
  14. listen 80;
  15. proxy_pass rancher_servers_http;
  16. }
  17. upstream rancher_servers_https {
  18. least_conn;
  19. server <IP_NODE_1>:443 max_fails=3 fail_timeout=5s;
  20. server <IP_NODE_2>:443 max_fails=3 fail_timeout=5s;
  21. server <IP_NODE_3>:443 max_fails=3 fail_timeout=5s;
  22. }
  23. server {
  24. listen 443;
  25. proxy_pass rancher_servers_https;
  26. }
  27. }
  • 保存 nginx.conf ,并复制nginx.conf到负载均衡器节点的/etc/nginx/nginx.conf路径下。

  • 重新加载nginx配置

  1. nginx -s reload

3、可选 - 以容器运行nginx服务

我们可以以容器的形式运行nginx服务,而不需要把它安装在宿主机上。将编辑好的NGINX示例配置文件保存到/etc/nginx.conf,并运行以下命令来启动NGINX容器:

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

三、FAQ和故障排除

FAQ中整理了常见的问题与解决方法。