我目前正在使用Nginx Ingress将我的应用暴露给外界,目前我的方法是这样的。我的问题是这是最好的方法吗?否则,将是最佳做法。
nginx入口控制器服务:-
apiVersion: v1
kind: Service
metadata:
name: nginx-ingress
spec:
type: LoadBalancer
ports:
- port: 80
name: http
protocol: "TCP"
- port: 443
name: https
protocol: "TCP"
selector:
app: nginx-ingress-lb
入口:-
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
name: app-ingress
spec:
tls:
- hosts:
- myservice.example.com
secretName: sslcerts
rules:
- host: myservice.example.com
http:
paths:
- backend:
serviceName: myservice
servicePort: 80
path: /
因此,基本上,我正在运行我的Nginx入口控制器容器,并将其公开给Loadbalacner服务类型,并且我有定义规则来确定路由。
答案 0 :(得分:0)
最佳方法取决于您选择构建集群的环境,无论您考虑使用Cloud provider还是Bare-metal解决方案。
在您的示例中,我想您正在使用Cloud provider作为负载均衡器配置程序,该配置程序将外部IP地址作为您NGINX Ingress Controller的入口点。因此,您很有可能使用各种功能和选项按需扩展Ingress。
我发现此Article对于比较NGINX Ingress Controller在云环境和裸机环境中的实现非常有用。