gpt4 book ai didi

docker - 如何将 k8 pod 暴露给公共(public)互联网?

转载 作者:行者123 更新时间:2023-12-02 20:34:11 32 4
gpt4 key购买 nike

我目前正在学习 docker 和 kubernetes。我遇到的问题之一是将我的 nginx pod 暴露在公共(public)互联网上。我想从我的网络浏览器访问我的 serverIP 并查看 nginx 页面,就好像 nginx 安装在服务器上一样。

来自 kubernetes 网站的 pod-nginx.yml

apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80

我可以从 pod 转发,然后通过 curl 访问默认的 nginx 页面。 sudo kubectl port-forward nginx 80:80 curl http://localhost返回 nginx 页面,而 curl http://<serverIP>返回 failed to connect <serverIP> port:80 Connection refused
我是否需要通过修改 iptables 和防火墙规则在我的公共(public)网络接口(interface)和集群网络接口(interface)之间进行端口转发?我觉得我在这里错过了一些非常明显的东西。

我尝试使用 nodeport 属性并阅读了有关入口和负载平衡器的文档,但我的云提供商没有这些后端功能,因此这些命令最终会无限期地挂起。

最佳答案

有多种公开服务的方法:

  • 使用 NodePort :这将在主机中打开一个端口,您可以在其中访问您的服务。例如像 192.168.100.99:37843,是 192.168.100.99 安装集群的主机系统之一。
  • 使用 LoadBalancer :如果你的集群在谷歌这样的云中,那么你可以使用底层基础设施为你的服务生成一个外部IP。我坚持底层云必须支持它。
  • 使用 Ingress rules : LoadBalancers 的适当替代方法是使用反向代理。 Kubernetes 允许您在端口 80 和 443 中监听此反向代理,并使用 Ingress 规则将流量转发到您的不同服务。

  • 看看你的情况,我认为入口规则选项会满足你的需要。如果您的集群没有安装 Ingress Controller ,您可以安装 this one基于 nginx。

    关于docker - 如何将 k8 pod 暴露给公共(public)互联网?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48361841/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com