正如docs https://docs.nginx.com/nginx-ingress-controller/installation/installation-with-manifests/中提到的,我已经设置了Nginx。我已经用下面的配置设置了这个入口
IngressClass
apiVersion: networking.k8s.io/v1beta1
kind: IngressClass
metadata:
name: nginx
# annotations:
# ingressclass.kubernetes.io/is-default-class: "true"
spec:
controller: nginx.org/ingress-controller
入口
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: hn-service-ingress
spec:
ingressClassName: nginx
rules:
- host: hostnameservice.classpath.com
http:
paths:
- path: /test
backend:
serviceName: hostname-service
servicePort: 80
下面是运行describe
命令时的错误。我要去找All hosts are taken by other resources
kubectl describe ingress hn-service-ingress
Name: hn-service-ingress
Namespace: pradeep
Address:
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
Host Path Backends
---- ---- --------
hostnameservice.classpath.com
/test hostname-service:80 (100.96.1.12:8111,100.96.1.13:8111,100.96.2.13:8111)
Annotations: <none>
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning Rejected 5s nginx-ingress-controller All hosts are taken by other resources
当我过去检查cafe
示例时,它运行得很好。我哪里出问题了?
注意:我已经配置了AWS负载均衡器,并使用dnslookup将/etc/hosts
设置为指向AWS中的ELB
。
发布于 2021-01-06 12:38:58
请记住,Nginx
有三种类型。Open Source Nginx Ingress Controller
,Nginx Incorporaton
(nginx .)和Nginx Incorporaton Plus
。
正如我在评论中提到的那样,使用相同host
的资源解决了问题。它叫主机碰撞。
当多个资源配置同一个主机时,会发生主机冲突。Ingress Controller
支持两个处理主机冲突的选项:
如果多个资源争夺同一台主机,则大会控制器将根据资源的creationTimestamp选择胜利者:最老的资源将获胜。如果有多个最老的资源(它们的creationTimestamp是相同的),则大会控制器将使用词汇表最小的uid来选择资源。
可以将同一主机的多个侵入域资源的配置合并。这种方法的一个常见用例是在多个命名空间之间分配资源。
OP证实,这是通过对另一个Ingress
资源在另一个namespace
中所做的更改解决的。
我解决了这个问题。在另一个名称空间中又出现了一个
https://stackoverflow.com/questions/65540117
复制相似问题