问题描述
我对 Knative 服务、Istio 和 AWS 应用程序负载均衡器(从现在开始为 ALB)之间的交互有疑问。
我正在使用 YAML 清单(而不是 kn
控制台)部署 Knative Serving v0.20,并使用 Helm 图表部署 Istio。此外,我一直在遵循一些在线指南(here 和 here)让 Istio 使用 ALB 而不是创建 ELB。根据他们的说法,让 Istio 使用 ALB 所需的主要配置更改是 gateways.istio-ingressgateway.type=NodePort
。这一变化使得 Istio 不会创建它的负载均衡器。
但是,我注意到,当 Istio 不创建负载均衡器时,Kubernetes 不会让我删除以下 Knative 入口:
kind: Ingress
apiVersion: networking.internal.knative.dev/v1alpha1
Metadata:
annotations:
networking.knative.dev/ingress.class: istio.ingress.networking.knative.dev
creationTimestamp: '2021-03-09T12:52:30Z'
deletionGracePeriodSeconds: 0
deletionTimestamp: '2021-03-09T13:13:30Z'
finalizers:
- ingresses.networking.internal.knative.dev
generateName: default-domain-
generation: 2
managedFields:
- apiVersion: networking.internal.knative.dev/v1alpha1
fieldsType: FieldsV1
fieldsV1:
'f:Metadata':
'f:annotations':
.: {}
'f:networking.knative.dev/ingress.class': {}
'f:generateName': {}
'f:spec':
.: {}
'f:rules': {}
manager: default-domain
operation: Update
time: '2021-03-09T12:52:30Z'
- apiVersion: networking.internal.knative.dev/v1alpha1
fieldsType: FieldsV1
fieldsV1:
'f:Metadata':
'f:finalizers':
.: {}
'v:"ingresses.networking.internal.knative.dev"': {}
'f:status':
.: {}
'f:conditions': {}
'f:observedGeneration': {}
'f:privateLoadBalancer':
.: {}
'f:ingress': {}
'f:publicLoadBalancer':
.: {}
'f:ingress': {}
manager: controller
operation: Update
time: '2021-03-09T12:52:43Z'
name: default-domain-fq97m
namespace: knative-serving
resourceVersion: '48071'
selfLink: >-
/apis/networking.internal.knative.dev/v1alpha1/namespaces/knative-serving/ingresses/default-domain-fq97m
uid: 84323bd8-018d-4d30-b933-91ebba604811
spec:
rules:
- hosts:
- default-domain-tn6xq.default-domain.invalid
http:
paths:
- splits:
- percent: 100
serviceName: default-domain-service
serviceNamespace: knative-serving
servicePort: 80
visibility: ExternalIP
status:
conditions:
- lastTransitionTime: '2021-03-09T12:52:43Z'
status: 'True'
type: LoadBalancerReady
- lastTransitionTime: '2021-03-09T12:52:30Z'
status: 'True'
type: NetworkConfigured
- lastTransitionTime: '2021-03-09T12:52:43Z'
status: 'True'
type: Ready
observedGeneration: 1
privateLoadBalancer:
ingress:
- domainInternal: knative-local-gateway.istio-system.svc.cluster.local
publicLoadBalancer:
ingress:
- domainInternal: istio-ingressgateway.istio-system.svc.cluster.local
我认为主要原因是 finalizers
部分。事实上,如果我修改集群中的资源,替换
finalizers:
- ingresses.networking.internal.knative.dev
使用 finalizers: []
然后 Kubernetes 让我可以销毁它。
我在文档和网上搜索了解释,但没有找到。一开始,我以为我搞砸了 AWS ALB 控制器,所以我尝试在不创建任何 ALB 的情况下更改 Istio 的配置,但问题并没有消失。
您知道 Ingress 的用途吗?我该如何解决(或至少解决)这个问题?也欢迎提供指向相关讨论/示例/文档的指针!
非常感谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)