7 层 LB TLS 终止(单节点安装)
对于需要在负载均衡器而不是在 Rancher Server 容器里终止 TLS / SSL 的特殊开发和测试环境,请部署 Rancher 并配置负载均衡器以与其配合使用。
如果要在基础设施中对 TLS 进行终结,请使用 7 层负载均衡器。7 层负载均衡可以提供基于 HTTP 属性(例如 cookie 等)的路由决策能力,这是 4 层负载均衡器无法实现的。
本文将引导您使用单个容器完成 Rancher 的部署,并且提供了一个 7 层 Nginx 负载均衡器的示例配置。
不需要使用外部负载均衡器?
#
关于操作系统、Docker、硬件、网络的需求确保您的节点满足常规的安装要求。
#
安装概要#
1、设置 Linux 节点根据 Rancher 的要求设置一台 Linux 主机,以启动 Rancher Server。
#
2、选择一个 SSL 选项并安装 Rancher为了安全起见,使用 Rancher 时需要 SSL。SSL 保护所有 Rancher 网络通信的安全,例如在您登录集群或与集群交互时。
您想要...
- 离线环境安装?
- 记录通过 Rancher API 进行的全部操作?
在继续之前请,参考高级选项。
选择下面的一个选项:
#
选项 A - 使用自己的自签名证明如果选择使用自签名证书来加密通信,则必须在负载均衡器(稍后再做)和 Rancher 容器上安装证书。运行 Docker 命令以部署 Rancher,将其指向您的证书。
先决条件: 创建自签名证书
- 证书必须是 PEM 格式。
基于自签名证书安装 Rancher:
在运行 Docker 命令部署 Rancher 时,将 Docker 指向您的 CA 证书文件。
#
选项 B - 使用机构颁发的证书如果您的集群是面向公众的,则最好使用由公认的 CA 签名的证书。
先决条件: 创建自签名证书
- 证书必须是 PEM 格式。
基于机构颁发证书安装 Rancher:
如果您使用由公认的 CA 签署的证书,则无需在 Rancher 容器中安装证书。我们必须确保没有生成和存储默认的 CA 证书,您可以通过将--no-cacerts
参数传递给容器来实现。
输入下面的命令
#
3、配置负载均衡器在 Rancher 容器前面使用负载均衡器时,不需要该容器从端口 80 或端口 443 重定向端口通信。通过传递 HeaderX-Forwarded-Proto:https
,可以禁用此重定向。
负载均衡器或代理必须配置为支持以下各项:
WebSocket 连接
SPDY / HTTP/2 协议
可以传递以下 HTTP 头:
HTTP 头 值 描述 Host
可达 Rancher 的 hostname 用来表示接受请求的 Rancher Server X-Forwarded-Proto
https
标识客户端用来连接到负载均衡器或代理的协议。
注意:如果存在此标头,则rancher/rancher
不会将 HTTP 重定向到 HTTPS。X-Forwarded-Port
可达 Rancher 的端口 标识客户端用来连接到负载均衡器或代理的端口。 X-Forwarded-For
请求端 IP 地址 用来表示请求端原始 IP
#
Nginx 配置示例此 NGINX 配置已在 NGINX 1.14 上进行了测试。
注意:此 Nginx 配置仅是示例,可能不适合您的环境。有关完整的文档,请参阅NGINX 负载均衡-HTTP 负载均衡。
- 将
rancher-server
替换为运行 Rancher 容器的节点的 IP 地址或主机名。 - 将两次出现的
FQDN
替换为 Rancher 的 DNS 名称。 - 将
/certs/fullchain.pem
和/certs/privkey.pem
分别替换为服务器证书和服务器证书密钥的位置。
#
相关链接- 推荐阅读: 单节点备份和还原。尽管您现在没有任何数据需要备份,但是我们建议您在常规 Rancher 使用之后创建备份。
- 创建 Kubernetes 集群。
#
常见问题和问题排查#
如何知道我的证书是不是 PEM 格式?您可以通过以下特征识别 PEM 格式:
- 该文件以以下标头开头:
-----BEGIN CERTIFICATE-----
- 标头后跟一长串字符。
- 该文件以页脚结尾:
-----END CERTIFICATE-----
#
PEM 证书例子:#
PEM 证书密钥例子:如果您的密钥看起来像下面的例子,请查看如何将证书密钥从 PKCS8 转换为 PKCS1
#
如何将证书密钥从 PKCS8 转换为 PKCS1?如果您使用的是 PKCS8 证书密钥文件,Rancher 将打印以下日志:
为了使它正常工作,您需要使用以下命令将密钥从 PKCS8 转换为 PKCS1:
您现在可以将convertedkey.pem
用作 Rancher 的证书密钥文件。
#
如果我想添加中间证书,证书的顺序是什么?添加证书的顺序如下:
#
如何验证我的证书链?您可以使用 openssl
二进制文件来验证证书链。如果命令的输出(请参见下面的命令示例)以 Verify return code: 0 (ok)
结尾,则您的证书链有效。ca.pem
文件必须与您添加到 rancher/rancher
容器中的文件相同。使用由公认的证书颁发机构签名的证书时,可以省略 -CAfile
参数。
命令:
#
高级选项#
API 审计日志如果要使用 Rancher API 记录所有事务,请通过在安装命令中添加以下标志来启用API 审计功能。
#
离线安装如果要访问此页面以完成离线安装,则在您运行安装命令时,必须在 server 镜像之前添加私有镜像库的 URL。例如在您的rancher/rancher:latest
前面添加带有您的私有镜像库的 URL<REGISTRY.DOMAIN.COM:PORT>
。
示例:
#
持久化数据Rancher 使用 etcd 作为数据存储。使用 Docker 安装时,将使用嵌入式 etcd。持久数据位于容器中的以下路径中:/var/lib/rancher
。您可以将主机卷挂载到该位置,以将数据保留在运行 Rancher Server 容器的主机上。使用 RancherOS 时,请检查哪些持久性存储目录可用。
命令: