我有一个本地网站。该网站由docker compose创建,正在本地主机端口3000上侦听。
当我尝试时:
curl 127.0.0.1:3000
我能看到回应。
我所做的:
从我的域提供商处,我编辑了DNS以指向我的服务器,然后我更改了nginx入口:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: virtual-host-ingress
namespace: ingress-basic
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/use-regex: "true"
cert-manager.io/cluster-issuer: "letsencrypt-pp"
spec:
tls:
- hosts:
- nextformulainvesting.com
secretName: ***
rules:
- host: "nextformulainvesting.com"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: e-frontend-saleor
port:
number: 80
我创建了服务:
apiVersion: v1
kind: Service
metadata:
name: e-frontend-saleor
spec:
ports:
- protocol: TCP
port: 80
targetPort: 3000
但无论是否有服务,我都会收到错误信息,即503服务暂时不可用。
如何使用nginx入口指向本地TCP服务?
您创建的服务用于将流量转发到部署
由于您的服务正在库伯内特斯集群的一侧运行,因此在这种情况下您应该使用endpoint
apiVersion: v1
kind: Endpoints
metadata:
name: my-service
subsets:
- addresses:
- IP: <External IP>
ports:
- port: 3000
您可以使用此endpoint进入,以便它将路由流量。
进入
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: virtual-host-ingress
namespace: ingress-basic
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/use-regex: "true"
cert-manager.io/cluster-issuer: "letsencrypt-pp"
spec:
tls:
- hosts:
- nextformulainvesting.com
secretName: ***
rules:
- host: "nextformulainvesting.com"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: my-service
port:
number: 3000
为了澄清这个问题,我在社区维基上发布了一个答案。
此链接提供了帮助解决此问题的答案。基于此,本案例的线索是为外部服务器手动创建服务和endpoint对象。
之后,可以创建一个入口对象,该对象将指向具有足够端口的服务外部ip。
以下是类似问题中提供的对象的示例。
apiVersion: v1
kind: Service
metadata:
name: external-ip
spec:
ports:
- name: app
port: 80
protocol: TCP
targetPort: 5678
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: external-ip
subsets:
- addresses:
- ip: 10.0.40.1
ports:
- name: app
port: 5678
protocol: TCP
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: external-service
spec:
rules:
- host: service.example.com
http:
paths:
- backend:
serviceName: external-ip
servicePort: 80
path: /
另请参见本参考。
我有一个具有两个路径的角色的入口: SEO部署是正确的: 它开始正常工作。我找不到一个合理的动机支持这种行为。
我在设置从8080到端口443的重定向时遇到问题。 场景如下:我有一个负载均衡器,监听端口80和443。对端口80的所有请求都转发到负载均衡器后面主机上的端口8080。对端口443的所有请求都转发到负载均衡器后面主机上的端口8443。 请求端口时http://address.com,它在负载平衡器上使用端口80,在主机上使用端口8080,这里一切正常。 重定向现在应指向https://addres
我有两个kubernetes环境,它们使用入口作为代理重定向请求以服务静态(前端)和后端rest服务。 在其中一个环境中,这样的请求可以由两个主机URL访问(一个主机配置了tls cert secret),在另一个环境中,我没有配置任何tls secret,只能由一个主机URL访问 在第一个环境中(只有一个主机,没有TLS机密),我有以下几点: 在这个例子中,我可以通过HTTP完美地发出请求,一切
在AWS EKS上,我有ALB入口控制器,入口资源指向端口32509上的NodePort服务,目标端口80,服务上有。 在这种情况下,外部流量如何在NodePort服务下路由到我的pod? 类似于,ALB
我只有很少的spring boot微服务,它们是通过云环境部署到JBoss的。这些引导服务是在Eureka服务器中注册自己的Eureka客户端。下面是一个例子: 它用user-regn-service-app Eureka主页的名称向Eureka注册应用程序 wildfly服务器在8080处运行,而user-regn-service-app部署在上下文路径/user-regn-service-ap