You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

裸金属Kubernetes如何像docker-compose一样暴露80和443端口到公网

问题答复

首先明确第二个问题的结论:Kubernetes 从设计上完全支持你所说的暴露方式,没有强制依赖云厂商的负载均衡器,裸金属部署场景有原生兼容的实现方案。

关于第一个问题的具体实现逻辑,和你之前使用 docker-compose 的架构几乎完全对齐,操作步骤如下:

  • 第一步:集群内部署的私有应用,只需要创建ClusterIP类型的Service即可,这类Service仅允许集群内部访问,和你之前docker-compose私有网络中的应用定位完全一致。
  • 第二步:部署你熟悉的反向代理服务(Caddy、NGINX均可,也可以直接使用Kubernetes生态的NGINX Ingress Controller这类标准化反代组件),对外仅暴露80、443端口即可,暴露反代的方式可选以下两种最常用的方案:
    • 方案一:给反代Pod配置hostNetwork: true参数,直接占用宿主机的80、443端口,效果和你之前docker端口映射-p 80:80 -p 443:443完全一致。整体链路为Internet --> 集群节点公网IP:80/443 --> 反代Pod --> 后端应用ClusterIP Service --> 业务Pod,和你之前用的docker-compose链路没有区别。
    • 方案二:如果不想占用宿主机网络命名空间,给反代创建NodePort类型的Service,将80、443端口映射到集群默认的30000-32767端口段,再手动配置宿主机的iptables规则,把宿主机80、443端口的流量转发到对应NodePort即可。

如果后续需要管理的应用数量较多,推荐使用Ingress Controller替代自己手动维护反代配置,你只需要创建Ingress资源定义域名和后端服务的对应关系,反代规则会自动生成,底层逻辑还是和你手动部署Caddy做反代完全一致。


内容的提问来源于stack exchange,提问作者fallais

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 20:06:05