Skip to main content

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"
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.maxBackup1int - 保留旧审计日志的最大文件个数 (仅在 auditLog.destination 的值为 hostPath时可用)
auditLog.maxSize100int - 在审计日志被轮换前的以 M 为单位的最大容量 (仅在 auditLog.destination 的值为 hostPath时可用)
busyboxImage"busybox"string - 用来收集审计日志的 busybox 镜像的地址。注意:从 v2.2.0 开始可用
certmanager.version""string - set cert-manager compatibility
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 开始可用
ingress.extraAnnotations{}map - 额外的 annotations,用于自定义 ingress
ingress.enabledtrue当设置为 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] 代理
noProxy127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16string - 通过逗号分隔的不使用代理的 hostnames 或 ip 地址列表。
rancherImage"rancher/rancher"string - Rancher 镜像的地址
rancherImageTagsame as chart versionstring - rancher/rancher 镜像标签
rancherImagePullPolicy“IfNotPresent”string - 覆盖 rancher server 镜像的 imagePullPolicy - “Always”、“Never”、“IfNotPresent”
replicas3int - Rancher Pod 的副本数量
resources{}map - Rancher pod 的资源预留和资源限制。
restrictedAdminfalse在 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"
useBundledSystemChartfalsebool - 选择是否用打包在 Rancher Server 容器内的system-charts。这个参数是针对离线环境使用的。注意:从 v2.3.0 开始可用

API 审计日志#

启用 API 审计日志

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

--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 键。记住需要给值加上引号。

--set 'extraEnv[0].name=CATTLE_TLS_MIN_VERSION'
--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 获取更多信息。

--set addLocal="false"

自定义 Ingress#

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

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

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

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

--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 符号范围。

--set proxy="http://<username>:<password>@<proxy_url>:<proxy_port>/"
--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。

--set additionalTrustedCAs=true

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

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 选项:

ingress:
provider: nginx
options:
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 分别替换为服务器证书和服务器证书密钥的位置。
worker_processes 4;
worker_rlimit_nofile 40000;
events {
worker_connections 8192;
}
http {
upstream rancher {
server IP_NODE_1:80;
server IP_NODE_2:80;
server IP_NODE_3:80;
}
map $http_upgrade $connection_upgrade {
default Upgrade;
'' close;
}
server {
listen 443 ssl http2;
server_name FQDN;
ssl_certificate /certs/fullchain.pem;
ssl_certificate_key /certs/privkey.pem;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://rancher;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
# 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.
proxy_read_timeout 900s;
proxy_buffering off;
}
}
server {
listen 80;
server_name FQDN;
return 301 https://$server_name$request_uri;
}
}
Last updated on by vickyhella3