kubernetes - 如何像使用 docker-compose 一样使用 Kubernetes 将 80 和 443 公开到 Internet?
问题描述
据我了解,暴露 pod 或部署可以通过 aNodePort
或 aClusterIP
或 LoadBalancer
服务来实现。
来自 docker-compose 世界,我的堆栈非常简单,我的所有应用程序都在私有 Docker 网络上运行,并且反向代理(Caddy 或 NGINX)也在运行,但我的堆栈中允许的唯一端口映射::80
和:443
(它当然可以允许到达专用网络)。
所以基本上:Internet ----> Caddy ----> Private applications
在 docker-compose 堆栈中。
Q1:如何在“裸机”环境中使用 Kubernetes 做这些事情?我的意思是,如果我不想使用云负载均衡器提供商?
Q2:是不是因为 Kubernetes 从来没有像这样暴露应用程序?它是否自动依赖于云提供商?
解决方案
这取决于您的网络设置方式。Kubernetes 通常在自己的网络中运行,现在您希望集群外的流量访问集群内的应用程序 - 通常通过“网关”/“代理”。
对于 http 和 https 流量,通常这个“网关”/“代理”是一个Ingress 控制器根据集群中的Ingress 资源配置的反向代理。您需要使用支持您的网络设置的Ingress Controller 。