自签名pem SSL证书
转载
权威 ssl 证书与默认自签名 ssl 证书或者自己生成的自签名证书有所不同,在权威 ssl 证书模式下,agent 通过 IP 访问无法通过证书的校验。因为 ssl 证书在生成的时候会与 IP 或者域名有一个绑定关系,而权威证书生成时候是基于申请证书时使用的域名,所以当用其他 IP 访问时候则无法验证通过。默认自签名 ssl 证书或者自己生成的自签名证书,在创建的时候有传递相应的 IP,所以自签名可以正常认证。
要使用权威证书安装 rancher,需要使用申请 ssl 证书时用的域名来访问 rancher。
在线安装
docker_data_dir=xxxx # 定义绝对路径
mkdir -p ${docker_data_dir}/data # rancher 数据目录
mkdir -p ${docker_data_dir}/auditlog # 审计日志目录
mkdir -p ${docker_data_dir}/ssl # 自定义 CA 证书目录
docker run -d --restart=unless-stopped \
-p 10080:80 \ ①
-v ${docker_data_dir}/data:/var/lib/rancher \ ②
# 审计日志配置 ③
-e AUDIT_LEVEL=3 \
-v ${docker_data_dir}/auditlog:/var/log/auditlog \
# 以下两行为自定义 CA 根证书 ④
-v ${docker_data_dir}/ssl/ca-additional.pem:/etc/ssl/certs/ca-additional.pem \
-v ${docker_data_dir}/ssl/ca-additional.pem:/etc/rancher/ssl/ca-additional.pem \
rancher/rancher:stable --no-cacerts
|
- 如果要在安装 rancher 的主机上安装 K8S 集群,那么在 ① 处需要修改主机端口为非 80,比如:-p 10080:80 ;
- 为了保证数据持久保存,需要在 ② 处映射 rancher 数据到主机路径;
- 如果不需要开启升级日志,则设置 AUDIT_LEVEL=0;
- rancher 内置的应用商店,是利用 git 工具去获取 git 服务器 repo 中 chart。如果 git 服务器用的自签名 ssl 证书,那么需要给 rancher 配置自签名 CA 证书用以访问 git 服务器时做认证。所以需要在 ④ 处把自签名 CA 映射到 rancher 容器中;
- 第 ⑤ 处的证书文件建议保持一致。并且在 cert.pem 文件中需要包含中间链路证书,常见包含中间链路证书的 cert.pem 文件中,至少有两个以 —BEGIN CERTIFICATE— 开头并以 —END CERTIFICATE— 结尾。
单节点离线安装
离线安装方法与在线安装方法基本相同,前提是已经将镜像同步到离线镜像仓库了,可以参考准备离线镜像来同步镜像。除此之外,有以下几点注意:
- 修改
rancher/rancher:stable
为离线镜像仓库中的镜像地址,比如:192.168.100.100/rancher/rancher:stable
- Rancher
v2.3.0
之后的版本默认内置了 system-chart,比如:监控。如果你的环境中没有 git 服务器用来同步 GitHub 上的 system-chart,那么可以通过设置以下环境变量来使用 Rancher 内置的 system-chart。
-e CATTLE_SYSTEM_CATALOG=bundled \
|
注意:如果将来要切换为外部 Git 仓库的 system-chart,需要修改变量 CATTLE_SYSTEM_CATALOG=external
,不能去掉这个变量。
- 在 Rancher 运行起来后进入 Rancher UI,进入Settings视图,查找
system-default-registry
并点击 Edit。
将值改为您的私有仓库地址, 例如:registry.yourdomain.com:port
, 不要添加 http:// 或 https://
前缀。
外部负载均衡
有时候主机只有一个内网 IP 而这个 IP 我们又无法直接访问,对于这种场景,需要有一个既可以访问 rancher server,又可以被用户直接访问的工具来代理。比较常见的,比如 nginx 的反向代理,下文所指的负载均衡均以 nginx 为例。
NGINX 七层代理参考配置
worker_processes 4;
worker_rlimit_nofile 40000;
events {
worker_connections 8192;
}
http {
upstream rancher {
server IP_NODE_1:10080; # 根据实际 rancher 映射端口修改
}
map $http_upgrade $connection_upgrade {
default Upgrade;
'' close;
}
server {
listen 443 ssl http2; # 如果是升级或者全新安装 v2.2.2,需要禁止 http2,其他版本不需修改。
server_name <与 ssl 证书匹配的域名 >; # 修改此处的域名
ssl_certificate <更换证书>; # 设置 ssl 证书路径
ssl_certificate_key <更换证书私钥>; # 设置 ssl 证书 key 路径
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;
}
}
|
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。