问题描述
使用 Kubernetes minikube 集群和 Nginx 入口控制器在 Windows 10 机器上公开的应用程序:
apiVersion: networking.k8s.io/v1
kind: Ingress
Metadata:
name: ingress-Nginx-controller
annotations:
kubernetes.io/ingress.class: "Nginx"
spec:
rules:
- host: testapp
http:
paths:
- path: /testapp-web-dev
pathType: Prefix
backend:
service:
name: testapp-portal-web-service
port:
number: 80
- path: /testapp-api1-dev
pathType: Prefix
backend:
service:
name: testapp-portal-api1-service
port:
number: 80
- path: /testapp-api2-dev
pathType: Prefix
backend:
service:
name: testapp-portal-api2-service
port:
number: 80
在 etc 主机中添加了 testapp 条目,并且在本地一切正常。我可以在本地访问应用程序 http://testapp/testapp-web-dev 或 http://testapp//testapp-api1-dev
现在我想知道如何在域中的这台计算机之外公开它? IE。计算机名称是 machine1,我希望域的其他用户以 http://machine1/testapp-web-dev http://machine1/testapp-api1-dev 或类似的名称访问其所有组件。
解决方法
您的入口配置指定 testapp
作为它在传入请求中寻找的主机。
如果您将其更改为 machine1
,并将 machine1
主机设置为解析为入口控制器服务的 ip,入口控制器应该能够成功地将对该主机的请求路由到您的服务中集群。
编辑:您可以遵循 k8s 文档中的 this useful guide 指导您完成在 minikube 上设置入口控制器的所有必需步骤