SUSE® Rancher Prime Helm Chart 选项
常用选项
选项 | 默认值 | 描述 |
---|---|---|
|
" " |
|
|
" " |
|
|
"rancher" |
|
|
" " |
|
|
"production" |
|
|
false |
|
高级选项
选项 | 默认值 | 描述 | |
---|---|---|---|
|
false |
|
|
|
"true" |
|
|
|
"preferred" |
|
|
|
"sidecar" |
|
|
|
"/var/log/rancher/audit" |
|
|
|
0 |
|
|
|
1 |
|
|
|
1 |
|
|
|
100 |
|
|
|
"registry.suse.com/bci/bci-micro" |
|
|
|
"15.4.14.3" |
|
|
|
"IfNotPresent" |
|
|
|
"" |
|
|
|
"" |
|
|
|
false |
|
|
|
[] |
|
|
|
[] |
|
|
|
"" |
|
|
|
{} |
|
|
|
true |
如果值为 false,Helm 不会安装 Rancher Ingress。你可把值设为 false 以部署你自己的 Ingress。 |
|
|
"" |
|
|
|
"127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.svc,.cluster.local,cattle-system.svc" |
|
|
|
"" |
|
|
|
"rancher/rancher" |
|
|
|
"IfNotPresent" |
|
|
|
和 Chart 版本一致 |
|
|
|
3 |
|
|
|
{} |
|
|
|
|
|
|
|
"" |
|
|
|
"ingress" |
|
|
|
|
|
|
|
|
|
引导密码
Rancher 首次启动时,会为第一个管理员用户随机生成一个密码。当管理员首次登录 Rancher 时,用于获取引导密码(Bootstrap)的命令会在 UI 上显示。管理员需要运行命令并使用引导密码登录。然后 Rancher 会让管理员重置密码。
如果你想指定引导密码而不使用随机生成的密码,请参考以下命令设置密码。
--set bootstrapPassword="rancher"
无论你是使用提供的密码还是生成的密码,密码均存储在 Kubernetes 密文中。安装 Rancher 后,如何使用 kubectl 获取密码的说明将会在 UI 中显示:
kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{ .data.bootstrapPassword|base64decode}}{{ "\n" }}'
API 审计日志
启用 API 审计日志。
你可以像收集其他容器日志一样收集此日志。在 Rancher Server 集群上为 System
项目启用 Logging。
--set auditLog.level=1
默认情况下,启用审计日志会在 Rancher pod 中创建一个 Sidecar 容器。这个容器(rancher-audit-log
)会把日志流传输到 stdout
。你可以像收集其他容器日志一样收集此日志。如果你使用 Sidecar 作为审计日志的目标时, hostPath
,maxAge
,maxBackups
和 maxSize
选项不会生效。建议使用你的操作系统或 Docker Daemon 的日志轮换功能来控制磁盘空间的使用。请为 Rancher Server 集群或 System 项目启用 Logging。
将 auditLog.destination
的值设为 hostPath
,可以将日志转发到与主机系统共享的卷,而不是传输到 Sidecar 容器。如果目标设置为 hostPath
,你可能需要调整其他 auditLog 参数以进行日志轮换。
额外设置环境变量
你可以使用 extraEnv
为 Rancher Server 额外设置环境变量。该列表以 YAML 格式传递给 Rancher 部署,它嵌入在 Rancher 容器的 env
下。你可以参考 Kubernetes 文档设置容器环境变量。extraEnv
可以使用 Define Environment Variables for a Container 中引用的任何键。
使用 name
和 value
键的示例:
--set 'extraEnv[0].name=CATTLE_TLS_MIN_VERSION'
--set 'extraEnv[0].value=1.0'
如果将敏感数据(例如代理认证凭证)作为环境变量的值传递,则强烈建议使用 Secret 引用。这将防止敏感数据在 Helm 或 Rancher 部署中暴露。
你可以参考使用 name
、valueFrom.secretKeyRef.name
和 valueFrom.secretKeyRef.key
键的示例。详见 HTTP 代理中的示例。
TLS 设置
当你在 Kubernetes 集群内安装 Rancher 时,TLS 会在集群的 Ingress Controller 上卸载。支持的 TLS 设置取决于使用的 Ingress Controller。
参见 TLS 设置了解更多信息和选项。
导入 local
集群
默认情况下,Rancher Server 会检测并导入其所在的 local
集群。有权访问 local
集群的用户对 Rancher Server 管理的所有集群具有"`root`"访问权限。
如果你关闭 addLocal,大多数 Rancher 2.5 功能都不能使用,包括 EKS Provisioner。 |
如果这在你的环境中是一个问题,你可以在初始安装时将此选项设置为"`false`"。
此选项仅在首次安装 Rancher 时有效。详情请参见 Issue 16522。
--set addLocal="false"
自定义 Ingress
要自定义或使用 Rancher Server 的其他 Ingress,你可以设置自己的 Ingress 注释。
设置自定义证书颁发者的示例:
--set ingress.extraAnnotations.'cert-manager\.io/cluster-issuer'=issuer-name
以下是使用 ingress.configurationSnippet
设置静态代理标头的示例。该值像模板一样进行解析,因此可以使用变量。
--set ingress.configurationSnippet='more_set_input_headers X-Forwarded-Host {{ .Values.hostname }};'
HTTP 代理
Rancher 的一些功能(Helm Chart)需要使用互联网才能使用。你可以使用 proxy
设置代理服务器,或使用 extraEnv
设置 HTTPS_PROXY
环境变量来指向代理服务器。
将要排除的 IP 使用逗号分隔列表添加到 noProxy
Chart value 中。确保添加了以下值:
-
Pod 集群 IP 范围(默认值:
10.42.0.0/16
)。 -
Service Cluster IP 范围(默认值:
10.43.0.0/16
)。 -
内部集群域(默认值:
.svc,.cluster.local
)。 -
任何 Worker 集群
controlplane
节点。 Rancher 支持在此列表中使用 CIDR 表示法来表示范围。
不包括敏感数据时,可以使用 proxy
或 extraEnv
Chart 选项。使用 extraEnv
时将忽略 noProxy
Helm 选项。因此,NO_PROXY
环境变量也必须设置为 extraEnv
。
以下是使用 proxy
Chart 选项设置代理的示例:
--set proxy="http://<proxy_url:proxy_port>/"
使用 extraEnv
Chart 选项设置代理的示例:
--set extraEnv[1].name=HTTPS_PROXY
--set extraEnv[1].value="http://<proxy_url>:<proxy_port>/"
--set extraEnv[2].name=NO_PROXY
--set extraEnv[2].value="127.0.0.0/8\,10.0.0.0/8\,172.16.0.0/12\,192.168.0.0/16\,.svc\,.cluster.local"
包含敏感数据(例如代理认证凭证)时,请使用 extraEnv
选项和 valueFrom.secretRef
来防止敏感数据在 Helm 或 Rancher 部署中暴露。
下面是使用 extraEnv
配置代理的示例。此示例 Secret 在 Secret 的 "https-proxy-url"
键中包含 "http://<username>:<password>@<proxy_url>:<proxy_port>/"
值:
--set extraEnv[1].name=HTTPS_PROXY
--set extraEnv[1].valueFrom.secretKeyRef.name=secret-name
--set extraEnv[1].valueFrom.secretKeyRef.key=https-proxy-url
--set extraEnv[2].name=NO_PROXY
--set extraEnv[2].value="127.0.0.0/8\,10.0.0.0/8\,172.16.0.0/12\,192.168.0.0/16\,.svc\,.cluster.local"
有关如何配置环境变量的更多信息,请参阅为容器定义环境变量。
额外的授信 CA
如果你有私有镜像仓库(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=./ca-additional.pem
私有仓库和离线安装
有关使用私有仓库安装 Rancher 的详情,请参见离线安装。
外部 TLS 终止
我们建议将负载均衡器配置为 4 层均衡,将普通 80/tcp 和 443/tcp 转发到 Rancher Management 集群节点。集群上的 Ingress Controller 会将端口 80 上的 HTTP 流量重定向到端口 443 上的 HTTPS。
你可以在 Rancher 集群(Ingress)外部的 L7 负载均衡器上终止 SSL/TLS。使用 --set tls=external
选项,将负载均衡器指向所有 Rancher 集群节点上的端口 HTTP 80。这将在 HTTP 端口 80 上暴露 Rancher 接口。请注意,允许直接连接到 Rancher 集群的客户端不会被加密。如果你选择这样做,我们建议你将网络级别的直接访问限制为仅你的负载均衡器。
如果你使用的是私有 CA 签名的证书,请添加 |
你的负载均衡器必须支持长期存在的 Websocket 连接,并且需要插入代理头,以便 Rancher 可以正确传送链接。
使用 NGINX v0.25 为外部 TLS 配置 Ingress
在 NGINX 0.25 中,NGINX 关于转发头和外部 TLS 终止的行为已更改。因此,如果你同时使用 NGINX 0.25 和外部 TLS 终止配置,你必须编辑 cluster.yml
来为 Ingress 启用 use-forwarded-headers
选项。
ingress:
provider: nginx
options:
use-forwarded-headers: 'true'
示例 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; # 此项允许执行的 shell 窗口保持开启,最长可达15分钟。不使用此参数的话,默认1分钟后自动关闭。 proxy_read_timeout 900s; proxy_buffering off; } } server { listen 80; server_name FQDN; return 301 https://$server_name$request_uri; } }