公开 kubernetes 入口的最佳方法?
Best approach to expose kubernetes ingress?
我目前正在使用 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 入口控制器 pods 运行 并暴露给 Loadbalacner 的服务类型,我定义了规则来确定路由。
最佳方法取决于您选择构建集群的环境,无论您是考虑使用云提供商还是裸机解决方案。
在您的示例中,我猜您正在使用云提供商作为负载均衡器配置器,它提供外部 IP 地址作为您 NGINX Ingress Controller 的入口点。因此,您很有可能使用各种功能和选项按需扩展 Ingress。
我发现这个 Article 对于比较 NGINX Ingress Controller 在云端和裸机环境中的实现非常有用。
我目前正在使用 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 入口控制器 pods 运行 并暴露给 Loadbalacner 的服务类型,我定义了规则来确定路由。
最佳方法取决于您选择构建集群的环境,无论您是考虑使用云提供商还是裸机解决方案。
在您的示例中,我猜您正在使用云提供商作为负载均衡器配置器,它提供外部 IP 地址作为您 NGINX Ingress Controller 的入口点。因此,您很有可能使用各种功能和选项按需扩展 Ingress。
我发现这个 Article 对于比较 NGINX Ingress Controller 在云端和裸机环境中的实现非常有用。