問題タブ [envoyproxy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - istio envoy プロキシで実行されているコンテナとの websocket 接続の最大数
Istio プロキシを使用するコンテナ内の Websocket 接続の最大数に制限があるようです
1024 で不足するようです (デフォルトのようです)。
また、nofiles の --default-ulimit を 102400:102400 に増やしてみましたが、istio によって制限されているのではないかと疑っています
DestinationPolicy も追加しようとしましたが、それも役に立ちませんでした
grpc - envoy、nomad、consul を使用して gRPC リクエストの動的ルーティングを構成する方法
nomadを使用して、 gRPCエンドポイントを提供するアプリケーションをタスクとしてデプロイします。その後、タスクはnomad の service stanzaを使用してConsulに登録されます。
アプリケーションのルーティングは、envoy proxyを使用して実現されます。IP で負荷分散された中央の envoy インスタンスを実行しています10.1.2.2
。
host
現在、ルーティング先のエンドポイント/タスクの決定はヘッダーに基づいており、すべてのタスクは の下にサービスとして登録されています<$JOB>.our.cloud
。これは 2 つの問題につながります。
サービスにアクセスするときは、ロードバランサー IP の DNS 名を登録する必要があります。これにより、次の
/etc/hosts
ようなエントリが生成されます。この問題は を使用することで部分的に軽減されます
dnsmasq
が、新しいサービスを追加するときはまだ少し面倒です同じ gRPC サービスを提供する複数のサービスを同時に実行することはできません。たとえば、サービスの新しい実装をテストすることにした場合
job
、同じ名前で同じサービスを実行する必要があり、gRPC サービス ファイルで定義されているすべてのサービスを実装する必要があります。
私たちが議論してきた可能な解決策はtags
、service
スタンザの を使用して、提供された gRPC サービスを定義するタグを追加することです。
しかし、これはConsulによって推奨されていません:
今、私たちは、のようなタグでそれを行うことを考えていましたgrpc-my-company-firstpackage__ServiceA
...これは本当に嫌に見えますが:-(
だから私の質問は:
- 誰かがそのようなことをしたことがありますか?
- その場合、Consul で自動検出される gRPC サービスにルーティングする方法に関する推奨事項は何ですか?
- 誰かがこれについて他のアイデアや洞察を持っていますか?
- これは、たとえばistioでどのように達成されますか?