セキュリティのためにTLSを使用するetcdクラスタがあります。他のマシンでetcdプロキシを使用したいので、localhostクライアントはTLSを使う必要はありません。プロキシは次のように構成されています。プロキシモードのetcd2は何も役に立ちません
[Service]
Environment="ETCD_PROXY=on"
Environment="ETCD_INITIAL_CLUSTER=etcd1=https://master1.example.com:2380,etcd2=https://master2.example.com:2380"
Environment="ETCD_PEER_TRUSTED_CA_FILE=/etc/kubernetes/ssl/ca.pem"
Environment="ETCD_PEER_CERT_FILE=/etc/kubernetes/ssl/worker.pem"
Environment="ETCD_PEER_KEY_FILE=/etc/kubernetes/ssl/worker-key.pem"
Environment="ETCD_TRUSTED_CA_FILE=/etc/kubernetes/ssl/ca.pem"
これは、最初の接続が行われる限り機能します。しかしetcdクライアントは、サーバの完全なリストを発見する最初のクエリを実行し、終了後には、そのリスト内のサーバーの1に対して、その本当のクエリを実行します。
$ etcdctl --debug ls
start to sync cluster using endpoints(http://127.0.0.1:4001,http://127.0.0.1:2379)
cURL Command: curl -X GET http://127.0.0.1:4001/v2/members
got endpoints(https://1.1.1.1:2379,https://1.1.1.2:2379) after sync
Cluster-Endpoints: https://1.1.1.1:2379, https://1.1.1.2:2379
cURL Command: curl -X GET https://1.1.1.1:2379/v2/keys/?quorum=false&recursive=false&sorted=false
cURL Command: curl -X GET https://1.1.1.2:2379/v2/keys/?quorum=false&recursive=false&sorted=false
Error: client: etcd cluster is unavailable or misconfigured
error #0: x509: certificate signed by unknown authority
error #1: x509: certificate signed by unknown authority
私は--advertise-client-urls=http://localhost:2379
にetcdマスターを変更する場合は、プロキシは自身に接続し、無限ループに入ります。また、プロキシはクライアントとマスター間のトラフィックを変更しないため、通知されたクライアントURLは書き換えられません。
etcdプロキシが役に立たないと思われるので、何かを理解してはいけません。