网络配置:公网与反向代理访问
一、 访问场景说明
-
仅内网访问:如果您的业务仅限于内网环境,可以直接使用 主管理节点(Master)的内网 IP 进行访问。在此场景下,本章节配置可以跳过。
- 系统控制台(访问 443):
https://主节点内网IPhttps://主节点内网IP/adminhttps://主节点内网IP:443https://主节点内网IP:443/admin
- 租户控制台(访问 443 或 44331):
https://主节点内网IP/tenanthttps://主节点内网IP:443/tenanthttps://主节点内网IP:44331
- 云空间客户端:配置云平台地址为
https://主节点内网IP,端口号为44301。
- 系统控制台(访问 443):
-
公网/跨网访问:
- 若需要允许客户端通过公网访问,必须进行 44301 端口映射。
- 若仅需要允许租户管理员从公网访问,必须进行 44331 端口映射。
- 若需要允许系统管理员从公网访问,必须进行 443 端口映射。
二、 修改配置以支持公网访问
2.1 映射端口一致性调整
强烈建议公网映射端口与内网端口保持一致。若必须不一致,则需调整 Nginx 配置将内网端口改为与公网端口一致。
下文
kubectl相关的所有命令都需要在 主管理节点 执行。
1. 查看当前监听端口:
[xspace@host151 ~]# sudo kubectl describe configmap/nginx-conf -n nginx | grep -w 44301
listen [::]:44301 ssl;
listen 44301 ssl;
[xspace@host151 ~]#
[xspace@host151 ~]# sudo kubectl describe configmap/nginx-conf -n nginx | grep -w 44331
listen [::]:44331 ssl;
listen 44331 ssl;
2. 编辑配置:
执行如下命令,进入 ConfigMap 配置文件的编辑状态,将对应的 44301 或 44331 修改为公网映射后的实际端口。
[xspace@host151 ~]# sudo kubectl edit configmap/nginx-conf -n nginx
2.2 系统控制台(443 端口)特殊安全配置
系统控制台一般不建议暴露到公网。若确需开启,由于 443 端口受政策及安全监管要求,公网访问时通常需调整为非标准端口(如 8443)。
步骤 A:调整监听端口
调整 ConfigMap,将 443 修改为映射后的端口(如 8443)。
调整前:
[xspace@host151 ~]# sudo kubectl describe configmap/nginx-conf -n nginx | grep -w 443
listen [::]:443 ssl;
listen 443 ssl;
调整后:
[xspace@host151 ~]# sudo kubectl describe configmap/nginx-conf -n nginx | grep -w 8443
listen [::]:8443 ssl;
listen 8443 ssl;
步骤 B:配置访问白名单(is_allowed)
系统控制台对公网访问有严格拦截。即使端口已映射,也必须将公网地址手动加入 is_allowed 列表,否则将显示 403 Forbidden。
注:44301 和 44331 端口无此白名单要求。
查看当前允许列表:
[xspace@host151 ~]$ sudo kubectl describe configmap/nginx-conf -n nginx | grep -w ^map -A 6
map $http_host $is_allowed {
default 0;
xspace.local 1;
192.222.8.151 1;
192.222.8.152 1;
192.222.8.153 1;
}
编辑 ConfigMap:
执行如下命令,进行配置文件的编辑状态
sudo kubectl edit configmap/nginx-conf -n nginx
添加匹配规则(配置示例):
按照实际访问的地址进行添加,确保包含映射后的端口。
map $http_host $is_allowed {
default 0;
xspace.local 1;
192.222.8.151 1; # 允许内网IP
192.222.8.152 1;
192.222.8.153 1;
202.1.1.1:8443 1; # 允许通过公网映射后的Web访问地址
}
🔴 重要红线:
禁止修改变量名:必须使用
map $http_host,严禁改为map $host。精确匹配:必须带上端口号(如
IP:8443),系统不接受也不匹配不带端口号的 IP 条目。
三、 使配置生效
修改并保存 ConfigMap(在 vi 编辑器中输入 :wq)后,必须在 主管理节点 重启 Nginx 服务以加载配置:
[xspace@host151 ~]$ sudo kubectl rollout restart daemonset/nginx -n nginx
daemonset.apps/nginx restarted
四、 维护提醒
- 403 错误排查:若配置后仍出现 403,请核对浏览器地址栏中的
IP:端口是否与 ConfigMap 列表中的字符串字符级完全一致。 - 版本升级:系统升级时自定义的
configmap会被重置,需要再次配置。