ETCD:etcdゲートウェイ

3125 ワード

原文住所:L 4 gateway
etcdゲートウェイとは
etcdゲートウェイは単純なTCPエージェントであり、ネットワークデータをetcdクラスタに転送することができる.ゲートウェイは無状態で透明である.クライアント・リクエストもクラスタ・レスポンスもチェックされません.ゲートウェイは複数のetcdサーバエンドポイントをサポートし、簡単なループポリシーを採用します.使用可能なエンドポイントにのみルーティングされ、クライアントに障害が表示されません.重み付けポーリングなどの他の再試行ポリシーが将来サポートされる可能性があります.
いつetcdゲートウェイを使用するか
各etcdにアクセスするアプリケーションは、まずetcdクラスタクライアントのエンドポイントのアドレスを有しなければならない.同じサーバ上の複数のアプリケーションが同じetcdクラスタにアクセスする場合、各アプリケーションは、etcdクラスタのブロードキャストクライアントエンドポイントを知る必要があります.etcdクラスタを異なるエンドポイントを持つように再構成する場合、各アプリケーションはエンドポイントリストを更新する必要がある場合があります.このような大規模な再配置は退屈で間違いやすい.etcdゲートウェイは、安定したローカルエンドポイントとして機能することによって、この問題を解決する.典型的なetcdゲートウェイ構成は、各コンピュータがゲートウェイを実行し、ローカルアドレスをリスニングし、各etcdアプリケーションがローカルゲートウェイに接続することである.結果は、各アプリケーションを更新するのではなく、ゲートウェイがエンドポイントを更新する必要があるだけです.要するに、クラスタエンドポイントの変更を自動的に伝播するために、etcdゲートウェイは、同じetcdクラスタにアクセスする複数のアプリケーションサービスの各マシン上で実行される.
いつetcdゲートウェイを使用すべきではないか
  • パフォーマンスを向上させるこのゲートウェイはetcdクラスタのパフォーマンスを向上させるために設計されていません.キャッシュ、連結、バッチの監視は行いません.etcdチームは、クラスタの伸縮性を向上させるためのキャッシュエージェントを開発しています.
  • は、クラスタ管理システムの実行時にKubernetesのような高度なクラスタ管理システム自体がサービス発見をサポートする.アプリケーションは、システム管理DNS名または仮想IPアドレスを使用してetcdクラスタにアクセスできます.たとえば、kube-proxyはetcdゲートウェイに等しい.etcdゲートウェイの起動
    次の静的エンドポイントを有するetcdクラスタを考慮する:
  • 名前
    アドレス
    ホスト名
    infra0
    10.0.1.10
    infra0.example.com
    infra1
    10.0.1.11
    infra1.example.com
    infra2
    10.0.1.12
    infra2.example.com
    静的エンドポイントを使用してetcdゲートウェイを起動するには、次のコマンドを実行します.
    $ etcd gateway start --endpoints=infra0.example.com,infra1.example.com,infra2.example.com
    2016-08-16 11:21:18.867350 I | tcpproxy: ready to proxy client requests to [...]

    または、DNSを使用してサービス発見を行う場合は、DNS SRVエントリを考慮します.
    $ dig +noall +answer SRV _etcd-client._tcp.example.com
    _etcd-client._tcp.example.com. 300 IN SRV 0 0 2379 infra0.example.com.
    _etcd-client._tcp.example.com. 300 IN SRV 0 0 2379 infra1.example.com.
    _etcd-client._tcp.example.com. 300 IN SRV 0 0 2379 infra2.example.com.
    $ dig +noall +answer infra0.example.com infra1.example.com infra2.example.com
    infra0.example.com.  300  IN  A  10.0.1.10
    infra1.example.com.  300  IN  A  10.0.1.11
    infra2.example.com.  300  IN  A  10.0.1.12

    次のコマンドを使用して、etcdゲートウェイを起動してDNS SRVエントリからエンドポイントを取得します.
    $ etcd gateway start --discovery-srv=example.com
    2016-08-16 11:21:18.867350 I | tcpproxy: ready to proxy client requests to [...]

    構成パラメータ
    etcdクラスタ
    --endpoints
  • クライアント接続を転送するためのetcdサーバターゲットリストをカンマで区切った.
  • デフォルト:127.0.0.1:2379
  • 無効例:https://127.0.0.1:2379(ゲートウェイはTLS端末に適用されない)
  • --discovery-srv
  • は、SRVレコードを介してクラスタの終端を導くDNSドメインのために使用される.
  • デフォルト:
  • は設定されていません.
    ネットワーク
    --listen-addr
  • クライアント要求バインディングを受信するインタフェースおよびポート
  • デフォルト:127.0.0.1:23790
  • --retry-delay
  • 失敗したエンドポイントに接続する前の遅延時間を再試行します.
  • デフォルト:1 m 0 s
  • 無効例:「123」(所望以外の時間フォーマット)
  • 安全
    --insecure-discovery
  • 安全でない、または仲介者の攻撃を受けやすいSRV記録を受け取る.
  • デフォルト:false
  • --trusted-ca-file
  • etcdクラスタのクライアントTLS CAファイルのパス.エンドポイントの認証に使用します.
  • デフォルト:
  • は設定されていません.