8

次のように 2 つのポートを公開する Kubernetes サービスがあります。

Name:              m-svc
Namespace:         m-ns
Labels:            
Annotations:       <none>
Selector:          app=my-application
Type:              ClusterIP
IP:                10.233.43.40
Port:              first  8080/TCP
TargetPort:        8080/TCP
Endpoints:         10.233.115.178:8080,10.233.122.166:8080
Port:              second  8888/TCP
TargetPort:        8888/TCP
Endpoints:         10.233.115.178:8888,10.233.122.166:8888
Session Affinity:  None
Events:            <none>

Ingress の定義は次のとおりです。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: f5
    virtual-server.f5.com/http-port: "80"
    virtual-server.f5.com/ip: controller-default
    virtual-server.f5.com/round-robin: round-robin
  creationTimestamp: 2018-10-05T18:54:45Z
  generation: 2
  name: m-ingress
  namespace: m-ns
  resourceVersion: "39557812"
  selfLink: /apis/extensions/v1beta1/namespaces/m-ns
  uid: 20241db9-c8d0-11e8-9fac-0050568d4d4a
spec:

  rules:
  - host: www.myhost.com
    http:
      paths:
      - backend:
          serviceName: m-svc
          servicePort: 8080
        path: /first/path
      - backend:
          serviceName: m-svc
          servicePort: 8080
        path: /second/path
status:
  loadBalancer:
    ingress:
    - ip: 172.31.74.89

しかし、 に行くと、 のポートでwww.myhost.com/first/pathリッスンしているサービスにたどり着きます。何が起こっているのでしょうか?8888m-svc

もう 1 つの情報は、同じサービスの異なるポートを指す 2 つのイングレス間でサービスを共有しているということですが、これは問題ですか? このサービスには別の入力ポート (ポート 8888) があり、正常に動作します

また、F5コントローラーを使用しています

これを何度も調査した結果、根本的な原因は F5 にあるようです。バックエンド (Kubernetes サービス) の名前が同じであるため、プールにエントリを 1 つだけ作成し、リクエストをこれにルーティングするようです。バックエンドと、F5 ポリシーに登録される 1 つのポート。これに対する修正はありますか?回避策は、ポートごとに固有のサービスを作成することですが、この変更はしたくありません。これは F5 レベルで可能ですか?

4

2 に答える 2