Skip to main content

暴露 Web 控制台

Web 控制台怎么对外访问由运维在安装时决定,四种模式之间可以随时用 helm upgrade 切换。

前置条件​

  • SupKube 已经安装,参见 在线安装。
  • 选定的访问地址必须与 auth.dex.publicURL 保持一致,否则登录会在回调环节失败。

四种模式​

模式适用场景访问方式关键参数
NodePort本地与自建机房,节点地址内网可达http://<节点地址>:30888/默认值,无需设置
LoadBalancer公有云,需要公网地址http://<外部地址>/service.frontend.type=LoadBalancer
ClusterIP安全敏感或气隙环境,按需访问端口转发后访问 http://localhost:8080service.frontend.type=ClusterIP
Ingress生产,域名加 TLShttps://supkube.example.com/ingress.enabled=true
warning

在 AKS、GKE、EKS 等托管集群上,节点通常没有公网地址,NodePort 从互联网不可达。公网访问请用 LoadBalancer 或 Ingress。

NodePort​

默认模式,前端 Service 固定使用 service.frontend.nodePort=30888。

kubectl get nodes -o wide

取任意节点的地址,浏览器打开 http://192.0.2.10:30888/。

LoadBalancer​

helm upgrade supkube supkube/supkube --reuse-values \
-n supkube \
--set service.frontend.type=LoadBalancer
kubectl -n supkube get svc supkube-frontend -w
note

云厂商分配的地址是动态的,删除并重建 Service 会换地址。需要固定地址时,用云厂商的静态地址注解把它钉住,并同步更新 auth.dex.publicURL。

ClusterIP 加端口转发​

helm upgrade supkube supkube/supkube --reuse-values \
-n supkube \
--set service.frontend.type=ClusterIP
kubectl -n supkube port-forward svc/supkube-frontend 8080:80

浏览器打开 http://localhost:8080,此时 auth.dex.publicURL 应设为 http://localhost:8080。

Ingress​

需要集群中已有入口控制器(Ingress Controller),证书由您自己的注解或 cert-manager 提供。

helm upgrade supkube supkube/supkube --reuse-values \
-n supkube \
--set ingress.enabled=true \
--set ingress.className=nginx \
--set ingress.hosts[0].host=supkube.example.com \
--set ingress.hosts[0].paths[0].path=/ \
--set ingress.hosts[0].paths[0].pathType=Prefix \
--set auth.dex.publicURL=https://supkube.example.com

部署在子路径下​

当 SupKube 与其他系统共用一个域名时,可以把控制台挂在子路径上。

helm upgrade supkube supkube/supkube --reuse-values \
-n supkube \
--set frontend.basePath=/supkube \
--set ingress.hosts[0].paths[0].path=/supkube \
--set auth.dex.publicURL=https://portal.example.com/supkube

frontend.basePath 会注入前端容器,由 nginx 在启动时渲染为运行期配置,前端路由与静态资源都基于该前缀。

验证方法​

kubectl -n supkube get svc supkube-frontend
kubectl -n supkube get ingress
kubectl -n supkube exec deploy/supkube-dex -- printenv | grep -i issuer

浏览器访问控制台地址,跳转到登录页且地址栏的主机名与 auth.dex.publicURL 完全一致,即配置正确。

相关文档​