如何将Minikube中的nginx对外暴露
How to expose nginx in Minikube to outside
我已经使用以下命令在 AWS EC2 实例的 minikube 中部署了 Nginx:
kubectl create deployment --image=nginx nginx-app
kubectl expose deployment nginx-app --port=80 --name=nginx-http --type=NodePort
在 NodePort 上可用:31568
我已经在安全组中添加了这个端口,并且能够在另一台笔记本电脑的浏览器上使用 http://EC2-PublicIP:31568
访问它
我有很多微服务要对外暴露。
有什么方法可以部署 API 网关(Nginx 或 Ingress)并在端口上公开并且应该能够访问其他微服务,例如
http://EC2-PublicIp:31568/helloworld
http://EC2-PublicIp:31568/mainpage
http://EC2-PublicIp:31568/editorspage
etc
我试过添加metallb,相应地,一个IP被分配给ingress(负载均衡器类型)。我只能在 EC2 实例中访问 ingress.yaml
中指定的所有微服务。
这应该可以从外面访问。如果是,那么如何配置?
感谢任何帮助。
你应该可以这样做,因为你使用的是 Nginx。
配置应该像这样:
注释来帮忙
“技巧”是将 annotations
设置为支持 regexp
和 rewrite-target
:
annotations:
nginx.ingress.kubernetes.io/use-regex: "true"
#
# the value can be set to `/` or `` or `` and so on
nginx.ingress.kubernetes.io/rewrite-target: "/"
这是“重要”注释 - 重写
# Without a rewrite any request will return 404
nginx.ingress.kubernetes.io/rewrite-target: "/"
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress
annotations:
#
# This is the expected line
#
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: "/"
spec:
rules:
- host: test.com # <- Set your host
http:
paths:
#
# List of desired paths
#
- path: /path1
backend:
serviceName: nginx-http
servicePort: 80
- path: /path2/[A-Z0-9]{3}
backend:
serviceName: nginx-http
servicePort: 80
我已经使用以下命令在 AWS EC2 实例的 minikube 中部署了 Nginx:
kubectl create deployment --image=nginx nginx-app
kubectl expose deployment nginx-app --port=80 --name=nginx-http --type=NodePort
在 NodePort 上可用:31568
我已经在安全组中添加了这个端口,并且能够在另一台笔记本电脑的浏览器上使用 http://EC2-PublicIP:31568
我有很多微服务要对外暴露。
有什么方法可以部署 API 网关(Nginx 或 Ingress)并在端口上公开并且应该能够访问其他微服务,例如
http://EC2-PublicIp:31568/helloworld
http://EC2-PublicIp:31568/mainpage
http://EC2-PublicIp:31568/editorspage
etc
我试过添加metallb,相应地,一个IP被分配给ingress(负载均衡器类型)。我只能在 EC2 实例中访问 ingress.yaml
中指定的所有微服务。
这应该可以从外面访问。如果是,那么如何配置?
感谢任何帮助。
你应该可以这样做,因为你使用的是 Nginx。
配置应该像这样:
注释来帮忙
“技巧”是将 annotations
设置为支持 regexp
和 rewrite-target
:
annotations:
nginx.ingress.kubernetes.io/use-regex: "true"
#
# the value can be set to `/` or `` or `` and so on
nginx.ingress.kubernetes.io/rewrite-target: "/"
这是“重要”注释 - 重写
# Without a rewrite any request will return 404
nginx.ingress.kubernetes.io/rewrite-target: "/"
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress
annotations:
#
# This is the expected line
#
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: "/"
spec:
rules:
- host: test.com # <- Set your host
http:
paths:
#
# List of desired paths
#
- path: /path1
backend:
serviceName: nginx-http
servicePort: 80
- path: /path2/[A-Z0-9]{3}
backend:
serviceName: nginx-http
servicePort: 80