配置Kubernetes nginx以进行外部访问

时间:2018-02-08 17:19:00

标签: nginx kubernetes lagom

我还是Kubernetes和Lagom的新手。

我需要从外部服务器调用我的Lagom微服务。要做到这一点,我认为我需要公开我的nginx-ingress进行外部访问,但我不知道如何。我应该配置" externalIPs"?

{
  "apiVersion": "v1",
  "kind": "Service",
  "metadata": {
    "name": "nginx-ingress"
  },
  "spec": {
    "type": "LoadBalancer",
    "ports": [
      {
        "port": 80,
        "name": "http",
        "targetPort": 8080
      },
      {
        "port": 443,
        "name": "https"
      }
    ],
    "externalIPs": [
      "192.168.1.120"
    ],
    "selector": {
      "k8s-app": "nginx-ingress-lb"
    }
  }
}

2 个答案:

答案 0 :(得分:1)

Minikube为自己和VM创建网络。您需要在外部公开您的服务。

来自Op的评论:您的服务获得了端口30370。您需要公开此端口。

ssh -i ~/.minikube/machines/minikube/id_rsa docker@$(minikube ip) -L \*:30370:0.0.0.0:30370

答案 1 :(得分:1)

在Minikube中,您将使用kubectl expose命令公开服务,以便按https://kubernetes.io/docs/tutorials/stateless-application/hello-minikube/#create-a-service进行外部访问。 Minikube不用于生产。

在生产中,您有三种方法可以使用kubernetes每https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types创建nginx入口服务,并将其公开以供外部访问:

  1. LoadBalancer自动设置ExternalIP的服务类型。当存在外部非k8s,云提供商的负载均衡器(如CGE,AWS或Azure)时,将使用此方法,此外部负载均衡器将为nginx入口服务提供ExternalIP
  2. ExternalIPshttps://kubernetes.io/docs/concepts/services-networking/service/#external-ips
  3. NodePort。在此方法中,可以使用NodeIP:NodePort/url/of/the/service从集群外部访问服务。
  4. 与nginx入口控制器一起,您也需要入口资源。有关示例,请参阅https://github.com/nginxinc/kubernetes-ingress/tree/master/examples/complete-example