通用选项

选项默认值描述
hostname“ “string - 您的 Rancher Server 的 FQDN
ingress.tls.source“rancher”string - 从哪里获取 ingress 的证书 - “rancher, letsEncrypt, secret”
letsEncrypt.email“ “string - 您的邮箱地址
letsEncrypt.environment“production”string - 可选项: “staging, production”
privateCAfalsebool - 如果您的证书是通过私有 CA 签发的,那么您需要设置这个值为true

高级选项

选项默认值描述
additionalTrustedCAsfalsebool - 请参阅 附加授信 CAs
addLocal“auto”string - 使 Rancher 发现并且导入”local” Rancher Server 集群 导入”local”集群
antiAffinity“preferred”string - Rancher Pod 反亲和性规则 - “preferred, required”
auditLog.destination“sidecar”string - 发送审计日志到 sidecar 容器的 console,或发送到 hostPath 卷 - “sidecar, hostPath”
auditLog.hostPath“/var/log/rancher/audit”string - 主机上的日志文件目标地址 (仅在 auditLog.destination 的值为 hostPath时可用)
auditLog.level0int - 设置API 审计日志等级。0 代表关闭。[0-3]
auditLog.maxAge1int - 保留旧审计日志的最大天数 (仅在 auditLog.destination 的值为 hostPath时可用)
auditLog.maxBackups1int - 保留旧审计日志的最大文件个数 (仅在 auditLog.destination 的值为 hostPath时可用)
auditLog.maxSize100int - 在审计日志被轮换前的以 M 为单位的最大容量 (仅在 auditLog.destination 的值为 hostPath时可用)
busyboxImage“busybox”string - 用来收集审计日志的 busybox 镜像的地址。注意:从 v2.2.0 开始可用
debugfalsebool - 设置 Rancher Server 的 debug 参数
extraEnv[]list - 设置 Rancher Server 的额外环境变量 注意:从 v2.2.0 开始可用
imagePullSecrets[]list - 私有镜像仓库登录凭证的密文名称列表。
ingress.extraAnnotations{}map - 加到 ingress 中的额外 annotation,从而自定义 ingress
ingress.configurationSnippet“”string - 添加额外的 Nginx 配置。可以用来配置代理。注意:从 v2.0.15, v2.1.10 和 v2.2.4 开始可用
proxy“”string - 给 Rancher 配置 HTTP[S] 代理
noProxy127.0.0.0/8,
10.0.0.0/8,
172.16.0.0/12,
192.168.0.0/16
string - 通过逗号分隔的不使用代理的 hostnames 或 ip 地址列表。
resources{}map - Rancher pod 的资源预留和资源限制。
rancherImage“rancher/rancher”string - Rancher 镜像的地址
rancherImageTagsame as chart versionstring - rancher/rancher 镜像标签
tls“ingress”string - 请参阅 外部 TLS Termination - “ingress, external”
systemDefaultRegistry“”string - 全部系统组件相关的 Docker 镜像的私有仓库地址。例如:http://registry.example.com/注意:从 v2.3.0 开始可用
useBundledSystemChartfalsebool - 选择是否用打包在 Rancher Server 容器内的system-charts。这个参数是针对离线环境使用的。注意:从 v2.3.0 开始可用

API 审计日志

您可以为 Rancher Server 集群上的System项目启用 Rancher 工具中的日志服务

  1. --set auditLog.level=1

默认情况下,启用审计日志将在 Rancher pod 中创建一个 sidecar 容器。这个容器(rancher-audit-log)会将日志流传输到stdout。您可以像收集任何容器日志一样收集此日志。将 sidecar 用作审计日志时,hostPathmaxAgemaxBackupsmaxSize选项不适用。建议使用您的操作系统或 Docker 守护进程的日志轮换功能来控制磁盘空间的使用。为 Rancher Server 启用Rancher 工具中的集群日志服务Rancher 工具中的项目日志服务

auditLog.destination设置为hostPath的值,以将日志转发至与主机系统共享的卷,而不是流至 Sidecar 容器。将目标设置为hostPath时,您可能需要调整其他 auditLog 参数以进行日志轮换。

设置额外环境变量

自 v2.2.0 起可用

您可以使用extraEnv为 Rancher Server 设置额外的环境变量。该列表使用与容器清单定义相同的namevalue键。记住需要给值加上双引号。

  1. --set 'extraEnv[0].name=CATTLE_TLS_MIN_VERSION'
  2. --set 'extraEnv[0].value=1.0'

TLS 设置

自 v2.2.0 起可用

要设置不同的 TLS 配置,可以使用CATTLE_TLS_MIN_VERSIONCATTLE_TLS_CIPHERS环境变量。例如,将 TLS 1.0 配置为接受的最低 TLS 版本:

  1. --set 'extraEnv[0].name=CATTLE_TLS_MIN_VERSION'
  2. --set 'extraEnv[0].value=1.0'

参阅 TLS 设置 获取更多信息和选项。

导入local集群

默认情况下,Rancher Server 将检测并导入正在运行的local集群。有权访问local集群的用户具有对 Rancher Server 管理的所有集群的root访问权限。

如果您的环境中存在此问题,则可以在初次安装时将此选项设置为false

注意事项: 此选项仅在第一次安装 Rancher 时有效。参阅 Issue 16522 获取更多信息。

  1. --set addLocal="false"

自定义您的 Ingress

要自定义或使用 Rancher Server 的其他 Ingress,您可以设置自己的 Ingress annotations。

设置自定义证书颁发者的示例:

  1. --set ingress.extraAnnotations.'certmanager\.k8s\.io/cluster-issuer'=ca-key-pair

v2.0.15, v2.1.10 和 v2.2.4 可用

使用ingress.configurationSnippet设置静态代理头的示例。该值像模板一样进行解析,因此可以使用变量。

  1. --set ingress.configurationSnippet='more_set_input_headers X-Forwarded-Host {{ .Values.hostname }};'

HTTP 代理

Rancher 需要 Internet 访问才能使用某些功能 (helm charts)。使用proxy设置您的代理服务器。

noProxy添加例外的 IP。确保添加了 Service cluster IP(默认: 10.43.0.1/16)和任何 worker 集群controlplane节点。Rancher 在此列表中支持 CIDR 范围表示法。

  1. --set proxy="http://<username>:<password>@<proxy_url>:<proxy_port>/"
  2. --set noProxy="127.0.0.0/8\,10.0.0.0/8\,172.16.0.0/12\,192.168.0.0/16"

附加授信 CAs

如果您有私有镜像仓库(registries)、应用商店(catalogs) 或拦截证书的代理,则可能需要向 Rancher 添加额外的受信任的 CA。

  1. --set additionalTrustedCAs=true

创建完 Rancher deployment 后,将 pem 格式的 CA 证书复制到一个名为ca-additional.pem的文件中,并使用kubectlcattle-system命名空间中创建tls-ca-additional 密文。

  1. kubectl -n cattle-system create secret generic tls-ca-additional --from-file=ca-additional.pem

私有镜像仓库(Registry)和离线安装

有关使用私有 registry 安装 Rancher 的详细信息,请参阅离线环境安装指南

外部 TLS Termination

我们建议将负载均衡器配置为 4 层均衡器,将普通 80/tcp 和 443/tcp 转发到 Rancher 管理集群节点。集群上的 Ingress Controller 会将端口 80 上的 http 通信重定向到端口 443 上的 https。

您可以在 Rancher 集群(ingress)外部的 L7 负载均衡器上终止 SSL/TLS。使用--set tls=external选项,将负载均衡器指向所有 Rancher 集群节点上的端口 http 80。这将在 http 端口 80 上公开 Rancher 接口。请注意,允许直接连接到 Rancher 集群的客户端将不会被加密。如果您选择这样做,我们建议您将网络级别上的直接访问限制为仅用于您的负载均衡器。

注意事项: 如果您使用的是专用 CA 签名的证书,请添加--set privateCA=true并参阅添加 TLS 密文 - 使用私有的 CA 签名证书来完成给 Rancher 添加 CA 证书。

您的负载均衡器必须支持长期存在的 Websocket 连接,并且需要插入代理标头,以便 Rancher 可以正确路由链接。

使用 NGINX v0.25 为外部 TLS 配置 Ingress

在 NGINX v0.25 中,关于转发头和外部 TLS Termination,NGINX 的行为已更改。因此,在将外部 TLS Termination 配置与 NGINX v0.25 结合使用的情况下,必须编辑cluster.yml来启用用于 ingress 的use-forwarded-headers选项:

  1. ingress:
  2. provider: nginx
  3. options:
  4. use-forwarded-headers: "true"

Headers

  • Host
  • X-Forwarded-Proto
  • X-Forwarded-Port
  • X-Forwarded-For

建议的超时时间

  • Read Timeout: 1800 seconds
  • Write Timeout: 1800 seconds
  • Connect Timeout: 30 seconds

健康检查

Rancher 将对/healthz端点上的健康检查响应200

NGINX 配置示例

此 NGINX 配置已在 NGINX 1.14 上进行了测试。

注意事项: 此 NGINX 配置只是一个示例,可能不适合您的环境。完整文档请参阅NGINX 负载均衡 - HTTP 负载均衡

  • IP_NODE1IP_NODE2IP_NODE3替换为集群中节点的 IP 地址。
  • 将两个出现的FQDN替换为 Rancher 的 DNS 名称。
  • /certs/fullchain.pem/certs/privkey.pem分别替换为服务器证书和服务器证书密钥的位置。
  1. worker_processes 4;
  2. worker_rlimit_nofile 40000;
  3. events {
  4. worker_connections 8192;
  5. }
  6. http {
  7. upstream rancher {
  8. server IP_NODE_1:80;
  9. server IP_NODE_2:80;
  10. server IP_NODE_3:80;
  11. }
  12. map $http_upgrade $connection_upgrade {
  13. default Upgrade;
  14. '' close;
  15. }
  16. server {
  17. listen 443 ssl http2;
  18. server_name FQDN;
  19. ssl_certificate /certs/fullchain.pem;
  20. ssl_certificate_key /certs/privkey.pem;
  21. location / {
  22. proxy_set_header Host $host;
  23. proxy_set_header X-Forwarded-Proto $scheme;
  24. proxy_set_header X-Forwarded-Port $server_port;
  25. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  26. proxy_pass http://rancher;
  27. proxy_http_version 1.1;
  28. proxy_set_header Upgrade $http_upgrade;
  29. proxy_set_header Connection $connection_upgrade;
  30. # 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.
  31. proxy_read_timeout 900s;
  32. proxy_buffering off;
  33. }
  34. }
  35. server {
  36. listen 80;
  37. server_name FQDN;
  38. return 301 https://$server_name$request_uri;
  39. }
  40. }