配置 F5 作为 Rancher 前端 7 层 LB
架构说明
本文档基于 BIGIP-15.0.1-0.0.11.ALL-vmware
虚拟机版本编写,架构如下图所示。
代理配置
步骤 1:配置健康检查
单击 Local Traffic
,然后单击 Monitors
右侧的 ➕
图标,添加监控。需要修改或新增的参数如下:
- “Name”一栏输名称,下图例子输入的是 http-rancher,对应的是 rancher 的 http 健康检查。
- “Description”一栏输入关于这个健康检查的描述,可跳过,非必填项。
- “Type” 选择类型为
http
- “Send String”填写参数为:
GET /healthz \r\n
。
其他参数保持默认即可。单击“Finished”,完成健康检查配置。
步骤 2:添加节点(可选)
单击
Local Traffic
,然后单击Nodes > Nodes List
旁边的➕
,添加节点。按照下图示例配置节点信息。请将
Health Monitors
设置为None
。
步骤 3:添加节点池
单击
Local Traffic > Pools > Pool List
旁边的➕
添加节点池。按照下图示例配置节点池。
设置节点池名称。
Health Monitors
选择先前创建的健康检查。New Members
中选择Node List
,选择开始添加的节点,单击下方的Add
,端口以实际 Rancher 暴露的端口为准。
步骤 4:添加 irule
单击
Local Traffic > iRules > iRules List
旁边的➕
,添加 irule。设置 irule 名称,将以下内容复制粘到文本框内。
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];
}
步骤 5:添加证书
访问
system > Certificate Management > Traffic Certificate Management > SSL Certificate List > Import
。选择导入类型为
key
和certificate
,然后选择导入文件。注意:权威证书会有中间链 CA 证书,所以这里会多一个 CA 证书,如果是自签名证书则可以忽略这个 CA 证书。
添加 SSL Profile
单击
Local Traffic > Profiles > SSL > client
旁边的➕
,添加 SSL Profile。配置 SSL 相关参数
- 输入 profile 名称。
Configuration
选择高级配置,并单击右侧自定义。Certificate Key Chain
处单击Add
,然后选择对应的证书和私钥。
添加之后
其他参数保持默认即可。
配置 Rancher Virtual Servers
单击
Local Traffic > Virtual Servers > Virtual Server List
旁边的➕
。配置
Name
,输入 Server 名称。保持
Type
为默认。配置
Source Address
为0.0.0.0/0
。根据实际情况配置
Destination Address/Mask
。Service Port
设置为443/https
。Configuration
选择高级。HTTP Profile (Client)
设置为http
。SSL Profile (Client)
选择之前创建的SSL Profile
。WebSocket Profile
选择WebSocket
。Source Address Translation
选择auto map
。在
Resources\iRules
中选择之前创建iRules
规则。Default Pool
选择之前创建的主机池。
完成配置如下图所示:
HTTP 重定向到 HTTPS
单击 Local Traffic > Virtual Servers > Virtual Server List
旁边的 ➕
,按照以下描述配置参数:
- 配置
Name
。 - 保持
Type
为默认。 - 配置
Source Address
为0.0.0.0/0
。 - 根据实际情况配置
Destination Address/Mask
。 Service Port
设置为80/http
。Configuration
选择基础。HTTP Profile (Client)
设置为http
。- 在
Resources\iRules
中选择_sys_https_redirect
。