为外部访问配置 Kubernetes nginx
Configure Kubernetes nginx for an external access
我对 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"
}
}
}
Minikube 为自己和 VM 创建一个网络。您需要向外部公开您的服务。
来自 Op 的评论: 您的服务获得端口 30370
。你需要公开这个端口。
ssh -i ~/.minikube/machines/minikube/id_rsa docker@$(minikube ip) -L \*:30370:0.0.0.0:30370
在 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 入口服务并将其公开以供外部访问:
LoadBalancer
自动设置 ExternalIP
的服务类型。当存在外部非 k8s、云提供商的负载均衡器(如 CGE、AWS 或 Azure)时使用,并且此外部负载均衡器将为 nginx 入口服务提供 ExternalIP
。
ExternalIPs
每 https://kubernetes.io/docs/concepts/services-networking/service/#external-ips.
NodePort
。在这种方法中,可以使用 NodeIP:NodePort/url/of/the/service
. 从集群外部访问服务
除了 nginx 入口控制器,您还需要一个入口资源。有关示例,请参阅 https://github.com/nginxinc/kubernetes-ingress/tree/master/examples/complete-example。
我对 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"
}
}
}
Minikube 为自己和 VM 创建一个网络。您需要向外部公开您的服务。
来自 Op 的评论: 您的服务获得端口 30370
。你需要公开这个端口。
ssh -i ~/.minikube/machines/minikube/id_rsa docker@$(minikube ip) -L \*:30370:0.0.0.0:30370
在 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 入口服务并将其公开以供外部访问:
LoadBalancer
自动设置ExternalIP
的服务类型。当存在外部非 k8s、云提供商的负载均衡器(如 CGE、AWS 或 Azure)时使用,并且此外部负载均衡器将为 nginx 入口服务提供ExternalIP
。ExternalIPs
每 https://kubernetes.io/docs/concepts/services-networking/service/#external-ips.NodePort
。在这种方法中,可以使用NodeIP:NodePort/url/of/the/service
. 从集群外部访问服务
除了 nginx 入口控制器,您还需要一个入口资源。有关示例,请参阅 https://github.com/nginxinc/kubernetes-ingress/tree/master/examples/complete-example。