访问托管在pod上的网页

时间:2018-02-14 12:58:33

标签: kubernetes

我有部署在端口9001上托管网站的服务以及附加到它的服务。我想允许任何人(来自外部群集)能够连接到该站点。

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:1)

  

我想允许任何人(来自外部群集)能够连接到该网站

有许多方法可以使用kubernetes services将网站的端口9001公开给外界:

  1. 服务类型LoadBalancer,如果您有外部云提供商的负载均衡器。
  2. ExternalIPs。该网站可以在ExternalIP:Port点击。
  3. 服务类型NodePort如果可以从用户访问群集的节点。该网站可以在NodeIP:NodePort点击。
  4. Ingress controller and ingress resource

答案 1 :(得分:0)

如果您希望公开您的应用程序,服务类型 Loadbalancer 将是可行的。

  

输入LoadBalancer   在支持外部负载均衡器的云提供商上,将类型字段设置为" LoadBalancer"将为您的服务配置负载均衡器。负载均衡器的实际创建是异步发生的,有关已配置的均衡器的信息将发布在Service的status.loadBalancer字段中。

例如

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
  - protocol: TCP
    port: 80
    targetPort: 9091
  type: LoadBalancer

我附上了一个链接,可以获得进一步的见解。 Kubernetes-service

答案 2 :(得分:0)

正如您所写,这不是云部署,您需要考虑如何以适当的方式正确地向世界展示这一点。 First和formost,为您的部署创建NodePort类型服务。这样,您的节点就会在高端口上公开该服务。

根据您的网络,此时您需要在网络中配置负载均衡器以将某些IP:80的流量转发到您的节点高NodePort,或者例如在带有{{1的DeamonSet中部署HAProxy将代理80代理到你的NodePort。

通过部署Nginx IngressController(如上所述)可以添加更多的复杂性,并使用Ingress使Ingress Controller公开您的所有服务,而无需为每个服务提供NodePort / LB / HAProxy。更多。