Kubernetes 对外入口核查是什么
集群对外的入口来自 LoadBalancer 类型的 Service、Ingress、NodePort 与网关组件。这些入口随业务迭代快速增加,很容易留下测试入口与闲置服务。核查做法是定期导出清单并逐条确权(业务名、域名、归属团队、必要性),同时确认管理面组件——API Server、Dashboard、监控面板等——不对公网开放。
基本信息
| 入口类型 | LoadBalancer Service、Ingress、NodePort、网关 |
|---|---|
| 管理面 | kube-apiserver、Dashboard、监控面板仅内网或白名单可达 |
| 默认后端 | 未匹配请求的默认响应可能泄露集群信息,需配置自定义默认页 |
| 收敛手段 | 闲置入口删除;NodePort 尽量替换为受控入口 |
清单导出命令
清单导出命令
kubectl get svc -A --field-selector spec.type=LoadBalancer
kubectl get svc -A --field-selector spec.type=NodePort
kubectl get ingress -A
kubectl get gateway -A 2>/dev/null # 使用 Gateway API 的集群
# 输出逐条确权:业务名、域名、归属团队、必要性、可否下线典型使用场景
- 季度暴露面复核:导出入口清单与业务台账比对确权
- 成本与安全双收益:云上 LoadBalancer 按量计费,闲置入口既花钱又占面
- 上线管控:新入口通过统一网关接入,避免各团队自建
- 管理面检查:确认 Dashboard 与 API Server 不对公网开
- 应急排查:攻击事件中确认是否存在未知入口
入口类型与风险
| 入口 | 暴露方式 | 风险点 |
|---|---|---|
| LoadBalancer | 云上分配公网 IP | 闲置后仍占用公网地址 |
| Ingress | 按域名暴露 | 默认后端泄露集群信息 |
| NodePort | 节点 IP 全段开放 | 任意节点 IP 加端口即可访问 |
| 管理面组件 | 通常同集群部署 | 一旦暴露即高价值目标 |
云上 LoadBalancer 会产生费用:账单维度反过来是发现闲置入口的好工具,把账单清单与入口清单一起看效率最高。
NodePort 的风险容易被低估:它对所有节点 IP 开放,节点数量越多暴露点越多,应尽量替换为统一网关入口。
入口收敛动作
| 入口 | 收敛动作 | 验证方式 |
|---|---|---|
| LoadBalancer | 闲置的直接释放,保留的加白名单 | 从外部复测公网地址不可达 |
| Ingress | 配置自定义默认后端 | 未匹配域名不再返回集群信息 |
| NodePort | 替换为统一网关入口 | 节点 IP 加端口不再可达 |
| 管理面 | 限制为内网或跳板机访问 | 外部复测 Dashboard 不可达 |