【发布时间】:2022-08-02 21:03:37
【问题描述】:
我想要两个入口,以便为每个入口(AWS ELB)设置不同的负载均衡器。
我关注official doc,但没有找到示例。
所以我创建了两个入口控制器,每个控制器都有它的类:
controller:
service:
...
ingressClassResource:
name: api-ingress
enabled: true
default: false
controllerValue: \"k8s.io/ingress-nginx\"
另一个(不是以相同的方式创建,所以它是 json):
controller: {
publishService: { enabled: true },
// watchIngressWithoutClass: true,
// ingressClassByName: true,
ingressClassResource: {
name: \'streaming-ingress\',
enabled: true,
default: false,
controllerValue: \'k8s.io/ingress-nginx\',
},
然后我创建了两个入口:
metadata: {
name: \'api-ingress\',
},
spec: {
ingressClassName: \'api-ingress\',
rules: [
{...
和
metadata: {
name: \'smartproxy-ingress\',
},
spec: {
ingressClassName: \'streaming-ingress\',
defaultBackend: ...
},
},
问题是两个入口都使用相同的控制器api-ingress。
入口控制器创建良好,并针对每个配置的不同 LB,但它们混合在一起。每个控制器的日志中都有对应两个入口的事件。我从中了解到入口类不起作用。
I0706 08:53:16.997641 8 event.go:282] Event(v1.ObjectReference{Kind:\"Pod\", Namespace:\"default\", Name:\"api-ingress-ingress-nginx-controller-5f9dc488ff-6tbt8\", UID:\"6dfdc93e-90ab-4abb-9b48-26b67521beef\", APIVersion:\"v1\", ResourceVersion:\"22708\", FieldPath:\"\"}): type: \'Normal\' reason: \'RELOAD\' NGINX reload triggered due to a change in configuration
I0706 08:55:19.423635 8 event.go:282] Event(v1.ObjectReference{Kind:\"Ingress\", Namespace:\"default\", Name:\"api-ingress\", UID:\"2b6ea52a-2dee-4fa7-995f-452bc8fa96c4\", APIVersion:\"networking.k8s.io/v1\", ResourceVersion:\"23218\", FieldPath:\"\"}): type: \'Normal\' reason: \'Sync\' Scheduled for sync
I0706 08:55:19.424410 8 event.go:282] Event(v1.ObjectReference{Kind:\"Ingress\", Namespace:\"default\", Name:\"smartproxy-ingress\", UID:\"74faf321-a9c4-45f8-994b-52bddd2c69a1\", APIVersion:\"networking.k8s.io/v1\", ResourceVersion:\"23219\", FieldPath:\"\"}): type: \'Normal\' reason: \'Sync\' Scheduled for sync
以下是使用相同 LB 的 2 个入口:
任何想法?有人用几个 nginx 入口和控制器成功了吗?
谢谢!
标签: amazon-web-services kubernetes nginx-ingress