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↻ 2024/12/18
中馬崇尋
Chuma Takahiro
Chuma Takahiro