0

クラスター内からローカルでのみトリガーされる、長時間実行されるプロセスに knative を使用しようとしています。

ネットワーク レイヤーとして、既にアンバサダーを使用しており、TLS で構成されており、HTTP 要求を HTTPS にリダイレクトします。

apiVersion: v1
kind: Service
metadata:
    getambassador.io/config: |
      ---
      apiVersion: ambassador/v1
      kind:  Module
      name:  tls
      config:
        server:
          enabled: True
          redirect_cleartext_from: 8080
          alpn_protocols: h2,http/1.1
...

「クラスターローカル」フラグを使用してサービスを作成しました。

kn service create helloworld-go --image gcr.io/knative-samples/helloworld-go --env TARGET="Go Sample v1" --cluster-local
Creating service 'helloworld-go' in namespace 'default':

  0.010s The Configuration is still working to reflect the latest desired specification.
  0.062s The Route is still working to reflect the latest desired specification.
  0.092s Configuration "helloworld-go" is waiting for a Revision to become ready.
  8.621s ...
  9.035s Ingress has not yet been reconciled.
 12.279s Ready to serve.

Service 'helloworld-go' created to latest revision 'helloworld-go-tcsyf-1' is available at URL:
http://helloworld-go.default.svc.cluster.local

クラスター内からアクセスしようとすると、https バージョンにリダイレクトされます。

curl -v http://helloworld-go.default.svc.cluster.local
*   Trying 10.11.253.45:80...
* Connected to helloworld-go.default.svc.cluster.local (10.11.253.45) port 80 (#0)
> GET / HTTP/1.1
> Host: helloworld-go.default.svc.cluster.local
> User-Agent: curl/7.69.1
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 301 Moved Permanently
< location: https://helloworld-go.default.svc.cluster.local/
< date: Thu, 17 Dec 2020 11:35:39 GMT
< server: envoy
< content-length: 0

それは動作しますが、明らかにcurl -k -v https://helloworld-go.default.svc.cluster.local証明書のホスト名が一致しませんcluster.local

を削除するとredirect_cleartext_from: 8080、ポート 80 が使用できなくなったようです。

bash-5.0$ curl -v http://helloworld-go.default.svc.cluster.local
*   Trying 10.11.253.45:80...
* connect to 10.11.253.45 port 80 failed: Connection refused
* Failed to connect to helloworld-go.default.svc.cluster.local port 80: Connection refused
* Closing connection 0
curl: (7) Failed to connect to helloworld-go.default.svc.cluster.local port 80: Connection refused

svc.cluster.local に対してのみ http => https リダイレクトを無効にする方法はありますか? knative 経由で提供されない他のワークロードについては、http とhttp://deployment-name.namespace/

4

1 に答える 1