概要
どうやら同一ドメインに対するルールは同一ファイルに定義しないとダメなようです
環境
- Ubuntu18.04
- kubernetes v1.20.4
対応策
例えば foo.bar.com という Host でアクセスする場合に以下のように 2 つのファイルを作成してはダメなようなです
vim ingress1.yml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: example-ingress1
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: foo.bar.com
http:
paths:
- path: /app1
backend:
serviceName: service1
servicePort: 5678
vim ingress2.yml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: example-ingress2
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: foo.bar.com
http:
paths:
- path: /app2
backend:
serviceName: service2
servicePort: 5678
これで ingress1 -> ingress2 の順番で起動すると ingress2 のほうが All hosts are taken by other resources
になると思います
この場合 paths の定義を統合して 1 つのファイルにしてから apply してあげましょう
vim ingress.yml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: example-ingress2
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: foo.bar.com
http:
paths:
- path: /app1
backend:
serviceName: service1
servicePort: 5678
- path: /app2
backend:
serviceName: service2
servicePort: 5678
どうしてもファイルを分けたい場合は host
自体を別の名前にする必要があります
0 件のコメント:
コメントを投稿