高级选项

选项默认值描述
additionalTrustedCAsfalsebool - 参考 其他受信任的 CA
addLocal“auto”string - 让 Rancher 检测,并导入”local” Rancher Server 所在的集群。
antiAffinity“preferred”string - 针对 Rancher pods 的 AntiAffinity 规则 - “preferred, required”
replicas3int - Rancher Pods 的数量
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 - 轮换之前审计日志文件的最大大小(以兆字节为单位)(仅当 auditLog.destination 设置为 hostPath)
busyboxImage“busybox”string - 用于收集审计日志的 busybox 镜像的镜像位置 注:自 v2.2.0 起可用
debugfalsebool - 在 Rancher Server 设置调试标志
certmanager.version“”string - 设置 cert-manager 兼容性
extraEnv[]list - 为 Rancher 设置其他环境变量 注:自 v2.2.0 起可用
imagePullSecrets[]list - 包含私有 Registry 凭据的密钥资源名称列表
ingress.extraAnnotations{}map - 自定义 ingress 的其他 annotations
ingress.configurationSnippet“”string - 添加其他的 Nginx 配置。可以用于代理配置。注:自 v2.0.15, v2.1.10 和 v2.2.4 起可用
letsEncrypt.ingress.class“”string - optional ingress class for the cert-manager acmesolver ingress that responds to the Let’s Encrypt ACME challenges
proxy“”string - Rancher 的 HTTP[S] 代理服务
noProxy“127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16”string - 不使用代理的逗号分隔的主机名或 IP 地址列表
{}map - rancher pod 资源请求和限制
rancherImage“rancher/rancher”string - rancher 镜像源
rancherImageTag跟 chart 版本一样string - rancher 镜像标签
rancherImagePullPolicy“IfNotPresent”string - 覆盖拉取 Rancher Server 镜像的规则,“Always”:每次都会拉取镜像;“Never”:每次都不会拉取镜像;”“IfNotPresent”:如果有更新的版本,则拉取镜像。
tls“ingress”string - 参考 。- “ingress, external”
systemDefaultRegistry“”string - 用于所有系统 Docker 镜像的私有 Registry,例如: http://registry.example.com/ 自 v2.3.0 起可用
useBundledSystemChartfalsebool - 选择使用 Rancher Server 内嵌的 system-charts。这个选项用于离线安装。自 v2.3.0 起可用

审计日志 API

您可以像收集任何容器日志一样收集审计日志,在 Rancher Server Cluster 中为System 项目启用。

默认情况下,启用审计日志会在 Rancher pod 中创建一个 sidecar 容器。这个容器(rancher-audit-log)会将日志流传输到stdout。将 sidecar 用作审计日志目标时,hostPathmaxAgemaxBackups,和 maxSize选项将会被忽略。建议使用您的操作系统或 Docker 守护程序的日志轮换功能来控制磁盘空间的使用。为 Rancher Server 集群或 System 项目启用Rancher 工具中的日志服务

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

自 v2.2.0 起可用

您可以使用extraEnv为 Rancher Server 设置额外的环境变量。该列表使用与 Rancher 容器 YAML 定义中相同的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'

有关更多信息和选项,请参见。

导入 local 集群

为 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 需要访问网络,才能使用某些功能(helm charts)。使用proxy设置您的代理服务器。

将不需要代理的 IP 地址添加到noProxy列表里。确保把服务集群的 IP 区间(默认:10.43.0.1/16)和工作集群controlplane节点添加进去。Rancher 在此列表中支持 CIDR 表示法。

其他受信任的 CA

如果您有私有 Registry,catalogs 或拦截证书的代理,则可能需要向 Rancher 添加其他受信任的 CA。

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

有关使用私有 Registry 安装 Rancher,参见:

在外部终止 TLS

我们建议将您的负载均衡器配置为第 4 层均衡器,将 80/tcp 和 443/tcp 的流量转发到 Rancher 管里面集群节点。集群上的 Ingress Controller 会将 80 端口的 http 请求重定向为 443 端口上的 https 请求。

您可以在 Rancher 集群外部的 L7 负载均衡器(Ingress)上终止 SSL/TLS 通信。使用--set tls=external选项,并将负载均衡器指向所有 Rancher 集群节点上的 http 协议 80 端口。这将会在 http 协议 80 端口上暴露 Rancher API。请注意,这种情况下,允许直接连接到 Rancher 集群的客户端与的 Rancher 的通信不会被加密。如果您选择这样做,我们建议将网络访问限制为只能访问您的负载均衡器。

您的负载均衡器必须支持 websocket 长连接,并切需要插入代理头信息以便 Rancher 可以正确路由链接。

在 NGINX v0.25 版本中,关于转发头和终止外部 TLS 访问的 NGINX 行为已经改变,因此,在 NGINX v0.25 版本要终止外部 TLS 访问,您必须编辑cluster.yml文件,为 Ingress 启用 use-forwarded-headers选项:

  • Host
  • X-Forwarded-For
  • 读取超时:1800 秒
  • 写入超时:1800 秒
  • 连接超时:30 秒

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

  • 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. # 这里将允许您在 Rancher UI 中打开命令行窗口时,窗口可以保留最多15分钟。没有这个参数时,默认值为1分钟,一分钟后在Rancher中的shell会自动关闭。
  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. }