本文最后更新于 547 天前,其中的信息可能已经有所发展或是发生改变。
第一章安装完一个 server 和一个 agent 节点之后,就相当于拥有了一个迷你的 K3s 集群,现在开始安装管理面板。
考虑到作为 Docker 容器运行的 Rancher 重启较为安全简单,不再使用自签证书而是使用腾讯云签发的 1 年有效期的亚洲诚信证书。
注意:如果没有在 K3s 安装时修改 Ingress 监听端口,请不要在 server 或 agent 同服务器上安装,会造成 80 和 443 端口上起的服务无法正常访问!
1、使用 Docker 安装 Rancher Labs
执行:
docker run -d --privileged --restart=unless-stopped \
# 容器 80、443 端口分别映射宿主机 8080 和 8443 端口
-p 8080:80 -p 8443:443 \
# 证书
-v /rab/ssl/rancher.k3s.com.pem:/etc/rancher/ssl/cert.pem \
-v /rab/ssl/rancher.k3s.com.key:/etc/rancher/ssl/key.pem \
# 数据挂载到宿主机
-v /rab/docker/rancher/rancher:/var/lib/rancher \
-v /rab/docker/rancher/auditlog:/var/log/auditlog \
# Rancher 选择为 2.5.x 版本
--privileged \
rancher/rancher:v2.5.5 \
# 非自签 SSL 证书
--no-cacerts
查看状态:
docker stats
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
e404cfxxx811 7.35% 1.5 GiB / 3.7 GiB 40.54% 192 MB / 3.09 MB 466 MB / 489 MB 21
成功。
2、Nginx 反代(可选)
注意:反代不要选择 HTTP 所在端口,Rancher 会自动跳转至 HTTPS 造成无法访问的情况!
配置如下:
...
...
# 防止出现“nginx: [emerg] unknown "connection_upgrade" variable”的错误
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
...
...
server {
listen 80;
server_name rancher.k3s.com;
# 强制跳转 HTTPS
location / {
return 301 https://$server_name$request_uri;
}
}
server {
listen 443 ssl;
server_name rancher.k3s.com;
# SSL 配置
ssl_certificate /rab/ssl/1_rancher.k3s.com_bundle.crt;
ssl_certificate_key /rab/ssl/2_rancher.k3s.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
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 https://127.0.0.1:8443;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
...
...
3、重启 Nginx 并访问域名

第一次访问会需要配置管理员密码,后续如果忘记请执行以下命令获取新密码:
docker exec -ti $container_id reset-password
返回结果中会有新的密码
New password for default admin user (user-xxxxx): $new_password
本章结束。