envoyは多様なプロトコルに対応しています。TCPプロキシとしても利用でき、HTTPプロキシ機能と混在も可能です。
TCPはHTTPと比べて取り扱う処理が少ないため、設定もシンプルです。以下はSSHを想定したListenerの設定例です。
- name: listener_tcp
"@type": type.googleapis.com/envoy.config.listener.v3.Listener
address:
socket_address:
address: 0.0.0.0
port_value: 22
filter_chains:
- filters:
- name: envoy.filters.network.tcp_proxy
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy
stat_prefix: ssh
cluster: ssh-host
TCPのサービスはポートを専有するため、この例のようにListnerを1つ追加定義することになります。
フィルタに
TCP Proxy
のconfigを使用する点がポイントです。
stat_prefixだけが必須項目であるため、最低限のconfigに迷うことはないでしょう。
オプション項目には、ルーティングロジックを実装するための機能が用意されています。
cluster側の設定は、HTTPと違いがないため省略します。
⁋ 2020/09/01↻ 2020/09/05
envoyの HTTPアップグレード 機能は、WebSocketとHTTP CONNECTメソッドをサポートしています。
CONNECTを使うとTCP通信をトンネルできます。
また、SNIに対応したク …
TCP通信(非HTTP)のアクセス元IPの伝播には、Proxy Protocolが必要です。
コンテナイメージ Proxy ProtocolのCODECツールとして、 go-mmproxy が手軽です …
GKE(Google Kubernetes Engine)は、HTTPS サービスを Kubernetes Gateway/Ingress を用いて公開できます。
非 HTTP のサービスを公開するに …
Google Kubernetes Engineのフロントエンドを ingress にする場合、自動でGCPのヘルスチェックが作られ、これを通過しないとPodが正常動作していたとしてもバックエンドサー …
JWTについては、発行やリフレッシュなどライフサイクル全体を設計する必要がありますが、envoyは主要な機能であるJWTの有効性検証を提供しています。
対応アルゴリズムなどの概要は、 JWT …
envoyは非常に高機能なプロキシですが、Basic認証のフィルタ機能はありません。 Set basic authentication to the endpoint で議論されているように、同等の機 …
envoyのconfig は、設定ファイルにスタティックに定義する方法のほか、xDSプロトコルに沿って動的に設定する方法も利用できます。
xDSはgRPCサービスを構成する方法と、configファイ …
envoyは高機能なネットワークプロキシで、サポートするプロトコルが豊富、動的に構成変更が可能といった特長があります。 高機能プロキシ共通の課題としてconfigが複雑であるため、構成を理解することが …
EN contents
Google Kubernetes Engine (GKE) can expose HTTPS services using Kubernetes Gateway/Ingress.
To expose …
If you set the front end of Google Kubernetes Engine to ingress , a GCP health check will be …