首页 > 解决方案 > 如何像使用 docker-compose 一样使用 Kubernetes 将 80 和 443 公开到 Internet?

问题描述

据我了解,暴露 pod 或部署可以通过 aNodePort或 aClusterIPLoadBalancer服务来实现。

来自 docker-compose 世界,我的堆栈非常简单,我的所有应用程序都在私有 Docker 网络上运行,并且反向代理(Caddy 或 NGINX)也在运行,但我的堆栈中允许的唯一端口映射::80:443(它当然可以允许到达专用网络)。

所以基本上:Internet ----> Caddy ----> Private applications在 docker-compose 堆栈中。

Q1:如何在“裸机”环境中使用 Kubernetes 做这些事情?我的意思是,如果我不想使用云负载均衡器提供商?

Q2:是不是因为 Kubernetes 从来没有像这样暴露应用程序?它是否自动依赖于云提供商?

标签: kubernetesdocker-compose

解决方案


这取决于您的网络设置方式。Kubernetes 通常在自己的网络中运行,现在您希望集群外的流量访问集群内的应用程序 - 通常通过“网关”/“代理”。

对于 http 和 https 流量,通常这个“网关”/“代理”是一个Ingress 控制器根据集群中的Ingress 资源配置的反向代理。您需要使用支持您的网络设置的Ingress Controller 。


推荐阅读