首页 > 其他分享 >Rancher v1.x 使用手册之三 安装Rancher并启用SSL

Rancher v1.x 使用手册之三 安装Rancher并启用SSL

时间:2023-11-27 16:36:35浏览次数:48  
标签:8080 server v1 使用手册 proxy Rancher Server rancher

安装Rancher并启用SSL

为了在Rancher Server启用 https 访问,您需要在Rancher Server前使用一个代理服务器代理https请求,并能设置http的头参数。我们会在以下的内容中提供一个使用NGINX、HAProxy或者Apache作为代理的例子。当然了,其他工具也是可以的。

需求

除了一般的Rancher Server需求外,您还需要:

  • 有效的SSL证书:如果您的证书并不是标准的Ubuntu CA bundle,请参考以下内容使用自签名证书
  • 相关域名的DNS配置

Rancher Server 标签

Rancher Server当前版本中有2个不同的标签。对于每一个主要的release标签,我们都会提供对应版本的文档。

  • rancher/server:latest 此标签是我们的最新一次开发的构建版本。这些构建已经被我们的CI框架自动验证测试。但这些release并不代表可以在生产环境部署。
  • rancher/server:stable 此标签是我们最新一个稳定的release构建。这个标签代表我们推荐在生产环境中使用的版本。请不要使用任何带有 rc{n} 前缀的release。这些构建都是Rancher团队的测试构建。

启动 Rancher Server

在我们的例子配置中,所有的流量都会通过一个Docker link从代理传入Rancher Server容器。有其他替代的方法,但在我们的例子中会尽量的简单易懂

启动Rancher Server。我们需要添加 —name=rancher-server 参数到命令中,使得代理的容器可以与Rancher Server容器建立Docker link

$ sudo docker run -d --restart=unless-stopped --name=rancher-server rancher/server

注意: 在我们的例子中,我们假设代理会运行在其他容器中。如果您打算在其他的服务器上运行代理,则您需要在Rancher Server上暴露8080端口,本地的话,通过在 docker run 中添加 -p 127.0.0.1:8080:8080 参数。

如果您需要复用现有的Rancher Server实例,升级的步骤会根据您如何运行原有的Rancher实例而不同。

Nginx 配置模版

以下是最小的NGINX配置。您应该根据您的需要定制化您自己的配置。本配置需要nginx版本大于 1.9.5。

设置注意项

  • rancher-server 是您的Rancher Server容器的名称。 当您启动Rancher Server容器时,命令中必须包括 —name=rancher-server 参数。当您启动nginx容器时,您的命令则必须包括 —link=rancher-server ,这样以下的配置才能生效。
  • <server> 可以是任何的名字,但是必须与http/https server配置的名称一致。
upstream rancher {
    server rancher-server:8080;
}
map $http_upgrade $connection_upgrade {
    default Upgrade;
    ''      close;
}
server {
    listen 443 ssl spdy;
    server_name <server>;
    ssl_certificate <cert_file>;
    ssl_certificate_key <key_file>;
    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://rancher;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        # This allows the ability for the execute shell window to remain open for up to 15 minutes. Without this parameter, the default is 1 minute and will automatically close.
        proxy_read_timeout 900s;
    }
}
server {
    listen 80;
    server_name <server>;
    return 301 https://$server_name$request_uri;
}

Apache 配置例子

以下是使用Apache作为负载均衡的配置例子。

设置注意项

  • <server_name> 是Rancher Server容器的名称。当您启动Apache容器,命令中必须包含 —link=<server_name>,这样以下的配置才能生效。
  • 在代理的设置中,您需要在配置中替换 rancher 这个参数。
  • 确保 proxy_wstunnel 这个参数是启用的(websocket支持)。
<VirtualHost *:80>
  ServerName <server_name>
  Redirect / https://<server_name>/
</VirtualHost>
 
<VirtualHost *:443>
  ServerName <server_name>
 
  SSLEngine on
  SSLCertificateFile </path/to/ssl/cert_file>
  SSLCertificateKeyFile </path/to/ssl/key_file>
 
  ProxyRequests Off
  ProxyPreserveHost On
 
  RewriteEngine On
  RewriteCond %{HTTP:Connection} Upgrade [NC]
  RewriteCond %{HTTP:Upgrade} websocket [NC]
  RewriteRule /(.*) ws://rancher:8080/$1 [P,L]
 
  RequestHeader set X-Forwarded-Proto "https"
  RequestHeader set X-Forwarded-Port "443"
 
  <Location />
    ProxyPass "http://rancher:8080/"
    ProxyPassReverse "http://rancher:8080/"
  </Location>
 
</VirtualHost>

HAProxy 配置例子

以下是HAProxy的最小配置。您应该根据您的需要去修改。

设置注意项

  • <rancher_server_X_IP>是Rancher Servers的IP地址。
global
  maxconn 4096
  ssl-server-verify none
 
defaults
  mode http
  balance roundrobin
  option redispatch
  option forwardfor
 
  timeout connect 5s
  timeout queue 5s
  timeout client 36000s
  timeout server 36000s
 
frontend http-in
  mode http
  bind *:443 ssl crt /etc/haproxy/certificate.pem
  default_backend rancher_servers
 
  # Add headers for SSL offloading
  http-request set-header X-Forwarded-Proto https if { ssl_fc }
  http-request set-header X-Forwarded-Ssl on if { ssl_fc }
 
  acl is_websocket hdr(Upgrade) -i WebSocket
  acl is_websocket hdr_beg(Host) -i ws
  use_backend rancher_servers if is_websocket
 
backend rancher_servers
  server websrv1 <rancher_server_1_IP>:8080 weight 1 maxconn 1024
  server websrv2 <rancher_server_2_IP>:8080 weight 1 maxconn 1024
  server websrv3 <rancher_server_3_IP>:8080 weight 1 maxconn 1024

F5 BIG-IP配置示例

下面的iRule配置可以使在F5 BIG-IP后的Rancher Server被访问到

when HTTP_REQUEST {
  HTTP::header insert "X-Forwarded-Proto" "https";
  HTTP::header insert "X-Forwarded-Port" "443";
  HTTP::header insert "X-Forwarded-For" [IP::client_addr];
}

使用AWS的Elastic Load Balancer作为Rancher Server HA的负载均衡器并使用SSL

我们建议使用AWS的ELB作为您Rancher Server的负载均衡器。为了让ELB与Rancher的websockets正常工作,您需要开启proxy protocol模式并且保证HTTP support被停用。 默认的,ELB是在HTTP/HTTPS模式启用,在这个模式下不支持websockets。listener的配置需要被特别的关注。

Listener 配置 - SSL

在ELB的SSL控制台,listener配置与以下配置类似:

Configuration Type

Load Balancer Protocol

Load Balancer Port

Instance Protocol

Instance Port

SSL-Terminated

SSL (Secure TCP)

443

TCP

8080 (或者使用启动Rancher时配置 —advertise-http-port 的端口)

  • 需要添加相应的安全组设置以及SSL证书

启用 Proxy Protocol

为了使websockets正常工作,ELB的proxy protocol policy必须被启用。

$ aws elb create-load-balancer-policy --load-balancer-name <LB_NAME> --policy-name <POLICY_NAME> --policy-type-name ProxyProtocolPolicyType --policy-attributes AttributeName=ProxyProtocol,AttributeValue=true
$ aws elb set-load-balancer-policies-for-backend-server --load-balancer-name <LB_NAME> --instance-port 443 --policy-names <POLICY_NAME>
$ aws elb set-load-balancer-policies-for-backend-server --load-balancer-name <LB_NAME> --instance-port 8080 --policy-names <POLICY_NAME>
  • Health check可以配置使用HTTP:8080下的 /ping 路径进行健康检查

使用AWS的Application Load Balancer(ALB) 作为Rancher Server HA的负载均衡器

我们不再推荐使用AWS的Application Load Balancer (ALB)替代Elastic/Classic Load Balancer (ELB)。如果您依然选择使用ALB,您需要直接指定流量到Rancher Server节点上的HTTP端口,默认是8080。

注意: 如果您使用ALB配合Kubernetes,kubectl —kubeconfig=kube_configxxx.yml exec 并不能使用那个功能,您需要使用ELB。

使用自签名证书 (Beta)

免责声明

以下的配置只会在Rancher的核心服务并且是单节点部署模式下生效。当前并没有官方的Rancher模版Rancher catalog支持。

Rancher Compose CLI 将需要CA证书,这个CA证书需要被添加到操作系统默认证书当中。请参考Golang root_*

前置条件

  • PEM格式的CA 证书
  • 为Rancher Server签名的CA证书
  • Nginx或者Apache实例,反向代理Rancher Server,并配置SSL

Rancher Server

  • 通过以下的Docker命令启动Rancher Server容器。证书必须放在容器内部/var/lib/rancher/etc/ssl/ca.crt的位置。
   $ sudo docker run -d --restart=unless-stopped -p 8080:8080 -v /some/dir/cert.crt:/var/lib/rancher/etc/ssl/ca.crt rancher/server
<br>
 
> **注意:** 如果您在容器内部运行NGINX或者Apache,您可以直接链接这个实例并且不需要暴露Rancher UI的8080端口。
 
这个命令将会配置服务器的ca-certificate,从而使Rancher的主机创建服务,应用商店服务和Compose执行服务可以与Rancher Server通信。
  • 如果您使用Nginx或者Apache代理SSL,在容器启动命令中添加—link=<rancher_server_container_name>参数。
  • 使用 https 地址访问Rancher,例如 https://rancher.server.domain
  • 为SSL更新主机注册地址配置

注意:除非您的浏览器信任了该用于给Rancher Server签名的CA证书,否则在您访问UI的时候,浏览器会显示一个未信任的网站警告。

添加 Hosts

  • 在您准备添加到Rancher集群的主机上,使用PEM格式保存CA证书,并放入 /var/lib/rancher/etc/ssl 文件夹下并改名为 ca.crt
  • 添加 自定义主机, 使用UI上提示的命令复制到主机上. 命令会自动挂载目录 -v /var/lib/rancher:/var/lib/rancher, 所以文件会自动的复制到您的主机上。


标签:8080,server,v1,使用手册,proxy,Rancher,Server,rancher
From: https://blog.51cto.com/u_14966640/8586925

相关文章

  • Rancher v1.x 使用手册之四—离线安装
    离线安装不可对外访问的网络环境(内网)也是可以启动Rancher服务的。在这种拓扑下,可以通过内网提供的IP或者域名来访问Rancher的操作界面(UI界面)。另外,也可以用HTTP代理或者私有镜像库来配置Rancher。需要注意的是,在内网中启动一个Rancher服务会导致一些特性无效,比如:使用操作......
  • Rancher五--在SELinux模式下安装Rancher-RHEL/CentOS
    在SELinux模式下安装Rancher-RHEL/CentOS从1.6+版本后支持为了使Rancher在RHEL/CentOS的SELinux模式下正常工作,您需要在安装有RPM包container-selinux-2.14(或更高的版本)的主机上运行RancherServer容器。同时,全部的agent主机也要安装这个包。如果您安装了较低版本的container-sel......
  • Rancher v1.x 使用手册之二安装Rancher
    安装RancherRancher是使用一系列的Docker容器进行部署的。运行Rancher跟启动两个容器一样简单。一个容器作为管理服务器部署,另外一个作为集群节点的Agent部署注意:您可以运行RancherServer的容器的命令 dockerrunrancher/server—help 来获得所有选项以及帮助信息。安装需求......
  • TotalFinder v1.15.1 Mac最好用的Finder增强工具
    TotalFinder的工作原理与普通Finder一样,但添加了选项卡、双面板、彩色标签和许多其他功能。TotalFinder是一个插件,而不是替代品请记住,TotalFinder是一个插件,在您启动TotalFinder.app时会加载到Finder中。它不会修改磁盘上的Finder文件。TotalFinder作为独立应用程序安装。启动......
  • 通过 docker-compose 快速部署 Rancher 保姆级教程
    目录一、概述二、开始编排部署Rancher1)部署docker2)部署docker-compose3)创建网络4)构建镜像5)编排docker-compose.yaml部署6)接入K8s集群1)部署k8s集群测试(已有可忽略)2)k8s上执行命令接入集群一、概述Rancher是一个开源的容器管理平台,它为企业提供了一个简化容器化应用部署......
  • docker-compose部署rancher
    1.yaml文件部署version:'3'services:rancher:image:rancher/rancher:stableprivileged:truerestart:alwayscontainer_name:ranchervolumes:-./data:/var/lib/rancherports:-8080:80-8443:443envi......
  • FS2110同步整流5V1A频率PWM同步升压IC转换器DC-DC
    描述FS2110是一种高效,固定频率550 KHz,电流模式PWM升压直流/直流转换器,可以操作电池,如输入电压降至2.5V。转换器输出电压可通过外部电阻分压器调节到最大5.25V。此外,转换器还包括一个0.08Ωn通道MOSFET开关和0.12Ωp通道同步整流器。因此,不需要外部肖特基二极管,可以得到更好的效率,......
  • ogre_v13.6.1的Tutorial例子
    这里使用的是Ogre官网提供的预编译的ogre-sdk-v13.6.1-msvc141-x64,假设解压在E:\ogre-sdk-v13.6.1-msvc141-x64,环境变量设置OGRE_HOMEe:\ogre-sdk-v13.6.1-msvc141-x64OGRE_CONFIG_DIRe:\ogre-sdk-v13.6.1-msvc141-x64\binPATH添加:%OGRE_HOME%\bin VC2019C++控制台......
  • 麒麟v10 基础镜像制作
    下载:https://archive.org/download/kylin-server-10-sp-2-x-86-release-build-09-20210524 需求:通过麒麟v10iso文件创建一个docker镜像说一下我是在麒麟的系统下创建的麒麟docker,其他系统可以对应修正,区别不大进程:挂载iso文件到目录mount-oloop/media/kylin/xxx.iso......
  • 银河麒麟v10系统安装emqx
    1.搭建emqx安装环境yum-yinstalllibatomiclibatomic_ops-devel2.安装emqxwgethttps://www.emqx.com/zh/downloads/broker/5.0.11/emqx-5.0.11-el8-arm64.rpmrpm-iemqx-5.0.11-el8-arm64.rpm3.启动emqx关闭emqxemqxstartemqxstop......