title: Chart 安装选项 description: Chart 安装选项 keywords:

  • rancher
  • rancher中文
  • rancher中文文档
  • rancher官网
  • rancher文档
  • Rancher
  • rancher 中文
  • rancher 中文文档
  • rancher cn
  • 安装指南
  • 高可用安装指南
  • Chart 安装选项

这个页面描述了 Rancher Helm Chart 的配置参考。

选择要安装的 Rancher 版本,请参阅选择 Rancher 版本

有关启用实验性功能的信息,请参阅这个页面

通用选项

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

高级选项

选项 默认值 描述
additionalTrustedCAs false bool - 请参阅 附加授信 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.level 0 int - 设置 API 审计日志等级。0 代表关闭。[0-3]
auditLog.maxAge 1 int - 保留旧审计日志的最大天数 (仅在 auditLog.destination 的值为 hostPath时可用)
auditLog.maxBackup 1 int - 保留旧审计日志的最大文件个数 (仅在 auditLog.destination 的值为 hostPath时可用)
auditLog.maxSize 100 int - 在审计日志被轮换前的以 M 为单位的最大容量 (仅在 auditLog.destination 的值为 hostPath时可用)
busyboxImage “busybox” string - 用来收集审计日志的 busybox 镜像的地址。注意:从 v2.2.0 开始可用
certmanager.version “” string - set cert-manager compatibility
debug false bool - 设置 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 开始可用
ingress.extraAnnotations {} map - 额外的 annotations,用于自定义 ingress
ingress.enabled true 当设置为 false 时,Helm 不会安装 Rancher ingress。将该选项设为 false,需要你自己部署 ingress。从 v2.5.6 版起可用
letsEncrypt.ingress.class “” string - cert-manager acmesolver ingress 的可选 ingress 类,用于响应 Let’s Encrypt ACME challenges。选项:Traefik、nginx。
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 - 通过逗号分隔的不使用代理的 hostnames 或 ip 地址列表。
rancherImage “rancher/rancher” string - Rancher 镜像的地址
rancherImageTag same as chart version string - rancher/rancher 镜像标签
rancherImagePullPolicy “IfNotPresent” string - 覆盖 rancher server 镜像的 imagePullPolicy - “Always”、“Never”、“IfNotPresent”
replicas 3 int - Rancher Pod 的副本数量
resources {} map - Rancher pod 的资源预留和资源限制。
restrictedAdmin false 在 Rancher v2.5 中可用 bool - 当该选项设置为 “true” 时,初始 Rancher 用户对本地 Kubernetes 集群的访问受到限制,以防止权限升级。更多信息,请参见restricted-admin 角色
systemDefaultRegistry “” string - 全部系统组件相关的 Docker 镜像的私有仓库地址。例如:http://registry.example.com/注意:从 v2.3.0 开始可用
tls “ingress” string - 请参阅 外部 TLS Termination - “ingress, external”
useBundledSystemChart false bool - 选择是否用打包在 Rancher Server 容器内的system-charts。这个参数是针对离线环境使用的。注意:从 v2.3.0 开始可用

API 审计日志

启用 API 审计日志

你可以像收集任何容器日志一样收集此日志。为 Rancher Server 集群上的 System 项目启用日志

  1. --set auditLog.level=1

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

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 设置

当您在 Kubernetes 集群内安装 Rancher 时,TLS 会在集群的 ingress controller 上卸载。支持的 TLS 设置取决于使用的 ingress controller。

参见TLS 设置以了解更多信息和选项。

导入 local 集群

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

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

注意事项: 如果您关闭 addLocal,大多数 Rancher v2.5 功能将无法使用,包括 EKS provisioner。

如果这在您的环境中是一个问题,您可以在初始安装时将此选项设置为“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

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

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

HTTP 代理

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

noProxy 列表中添加例外的 IP。确保添加了 Pod 集群 IP 范围(默认:10.42.0.0/16),Service 集群 IP 范围(默认:10.43.0.0/16),内部集群域(默认:.svc, .cluster.local)和任何 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\,.svc\,.cluster.local"

附加授信 CAs

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

  1. --set additionalTrustedCAs=true

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

  1. kubectl -n cattle-system create secret generic tls-ca-additional --from-file=ca-additional.pem=./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. }