欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

了解 etcd --advertise-client-urls 参数

最编程 2024-05-03 12:49:39
...

一、背景介绍

    一直对--advertise-client-urls这个参数迷迷糊糊的,搞不清到底是做什么的,网上的一些解释也似懂非懂的,因此,本篇文章就做一个小测试,去探寻究竟。
仅供参考!

二、测试环境介绍

主机名 IP 系统 服务
master 172.16.91.195 centos7.5 etcd(单例)
harbor 172.16.91.222 centos7.5

三、参数说明

    etcd有要求,如果--listen-client-urls被设置了,那么就必须同时设置--advertise-client-urls,所以即使设置和默认相同,也必须显式设置

四、测试

4.1 测试1: 将--advertise-client-urls设置成http://127.0.0.1:2379

  1. 更新配置文件


    更新配置文件
  2. 重新启动etcd服务
    systemctl daemon-reload
    systemctl restart etcd 
    
  3. 在本机上测试
    etcdctl --endpoints=http://127.0.0.1:2379 --debug ls
    本机测试
  4. 在同一个局域网的其他机器上测试


    harbor节点上测试

4.2 测试2: 将--advertise-client-urls设置成http://172.16.91.195:2379

  1. 更新配置文件


    更新配置文件
  2. 重新启动etcd服务

    systemctl daemon-reload
    systemctl restart etcd 
    
  3. 在本机上测试
    etcdctl --endpoints=http://127.0.0.1:2379 --debug ls

    本机测试

  4. 在同一个局域网的其他机器上测试


    harbor节点上测试

4.3 测试3: 将--advertise-client-urls设置成http://172.16.91.222:2379

  1. 更新配置文件


    更新配置文件
  2. 重新启动etcd服务
    systemctl daemon-reload
    systemctl restart etcd 
    
  3. 在本机上测试
    本机测试
  4. 在同一个局域网的其他机器上测试


    harbor节点上测试

4.4 测试4: 将--advertise-client-urls设置成http://172.16.91.222,http://127.0.0.1:2379,http://172.16.91.195:2379

  1. 更新配置文件


    更新配置文件
  2. 重新启动etcd服务
    systemctl daemon-reload
    systemctl restart etcd 
    
  3. 在本机上测试
    本机测试
  4. 在同一个局域网的其他机器上测试


    harbor节点上测试

4.5 分析

观看上面测试中,debug输出的信息,会发现etcdctl的基本工作流程

4.5.1 etcdctl的基本工作流程?

etcdctl的基本工作流程

4.6 总结:

  • --advertise-client-urls
    • 就是客户端(etcdctl/curl等)跟etcd服务进行交互时请求的url
  • --listen-client-urls
    • 这个参数是etcd服务器自己监听时用的,也就是说,监听本机上的哪个网卡,哪个端口
  • 说明etcdctl的底层逻辑,应该是调用curl跟etcd服务进行交换