通用选项
选项 | 默认值 | 描述 |
---|---|---|
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.maxBackups | 1 | int - 保留旧审计日志的最大文件个数 (仅在 auditLog.destination 的值为 hostPath 时可用) |
auditLog.maxSize | 100 | int - 在审计日志被轮换前的以 M 为单位的最大容量 (仅在 auditLog.destination 的值为 hostPath 时可用) |
busyboxImage | “busybox” | string - 用来收集审计日志的 busybox 镜像的地址。注意:从 v2.2.0 开始可用 |
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 开始可用 |
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 地址列表。 |
resources | {} | map - Rancher pod 的资源预留和资源限制。 |
rancherImage | “rancher/rancher” | string - Rancher 镜像的地址 |
rancherImageTag | same as chart version | string - rancher/rancher 镜像标签 |
tls | “ingress” | string - 请参阅 外部 TLS Termination - “ingress, external” |
systemDefaultRegistry | “” | string - 全部系统组件相关的 Docker 镜像的私有仓库地址。例如:http://registry.example.com/ 注意:从 v2.3.0 开始可用 |
useBundledSystemChart | false | bool - 选择是否用打包在 Rancher Server 容器内的system-charts 。这个参数是针对离线环境使用的。注意:从 v2.3.0 开始可用 |
API 审计日志
您可以为 Rancher Server 集群上的System
项目启用 Rancher 工具中的日志服务。
--set auditLog.level=1
默认情况下,启用审计日志
将在 Rancher pod 中创建一个 sidecar 容器。这个容器(rancher-audit-log
)会将日志流传输到stdout
。您可以像收集任何容器日志一样收集此日志。将 sidecar 用作审计日志时,hostPath
,maxAge
,maxBackups
和maxSize
选项不适用。建议使用您的操作系统或 Docker 守护进程的日志轮换功能来控制磁盘空间的使用。为 Rancher Server 启用Rancher 工具中的集群日志服务或Rancher 工具中的项目日志服务。
将auditLog.destination
设置为hostPath
的值,以将日志转发至与主机系统共享的卷,而不是流至 Sidecar 容器。将目标设置为hostPath
时,您可能需要调整其他 auditLog 参数以进行日志轮换。
设置额外环境变量
自 v2.2.0 起可用
您可以使用extraEnv
为 Rancher Server 设置额外的环境变量。该列表使用与容器清单定义相同的name
和value
键。记住需要给值加上双引号。
--set 'extraEnv[0].name=CATTLE_TLS_MIN_VERSION'
--set 'extraEnv[0].value=1.0'
TLS 设置
自 v2.2.0 起可用
要设置不同的 TLS 配置,可以使用CATTLE_TLS_MIN_VERSION
和CATTLE_TLS_CIPHERS
环境变量。例如,将 TLS 1.0 配置为接受的最低 TLS 版本:
--set 'extraEnv[0].name=CATTLE_TLS_MIN_VERSION'
--set 'extraEnv[0].value=1.0'
参阅 TLS 设置 获取更多信息和选项。
导入local集群
默认情况下,Rancher Server 将检测并导入正在运行的local
集群。有权访问local
集群的用户具有对 Rancher Server 管理的所有集群的root
访问权限。
如果您的环境中存在此问题,则可以在初次安装时将此选项设置为false
。
注意事项: 此选项仅在第一次安装 Rancher 时有效。参阅 Issue 16522 获取更多信息。
--set addLocal="false"
自定义您的 Ingress
要自定义或使用 Rancher Server 的其他 Ingress,您可以设置自己的 Ingress annotations。
设置自定义证书颁发者的示例:
--set ingress.extraAnnotations.'certmanager\.k8s\.io/cluster-issuer'=ca-key-pair
v2.0.15, v2.1.10 和 v2.2.4 可用
使用ingress.configurationSnippet
设置静态代理头的示例。该值像模板一样进行解析,因此可以使用变量。
--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 范围表示法。
--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"
附加授信 CAs
如果您有私有镜像仓库(registries)、应用商店(catalogs) 或拦截证书的代理,则可能需要向 Rancher 添加额外的受信任的 CA。
--set additionalTrustedCAs=true
创建完 Rancher deployment 后,将 pem 格式的 CA 证书复制到一个名为ca-additional.pem
的文件中,并使用kubectl
在cattle-system
命名空间中创建tls-ca-additional
密文。
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
选项:
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_NODE1
,IP_NODE2
和IP_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;
}
}