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

一、背景介绍

    一直对--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. 更新配置文件


    etcd --advertise-client-urls参数理解_第1张图片
    更新配置文件
  2. 重新启动etcd服务
    systemctl daemon-reload
    systemctl restart etcd 
    
  3. 在本机上测试
    etcdctl --endpoints=http://127.0.0.1:2379 --debug ls
    etcd --advertise-client-urls参数理解_第2张图片
    本机测试
  4. 在同一个局域网的其他机器上测试


    harbor节点上测试

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

  1. 更新配置文件


    etcd --advertise-client-urls参数理解_第3张图片
    更新配置文件
  2. 重新启动etcd服务

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

    etcd --advertise-client-urls参数理解_第4张图片
    本机测试

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


    etcd --advertise-client-urls参数理解_第5张图片
    harbor节点上测试

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

  1. 更新配置文件


    etcd --advertise-client-urls参数理解_第6张图片
    更新配置文件
  2. 重新启动etcd服务
    systemctl daemon-reload
    systemctl restart etcd 
    
  3. 在本机上测试
    etcd --advertise-client-urls参数理解_第7张图片
    本机测试
  4. 在同一个局域网的其他机器上测试


    etcd --advertise-client-urls参数理解_第8张图片
    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. 更新配置文件


    etcd --advertise-client-urls参数理解_第9张图片
    更新配置文件
  2. 重新启动etcd服务
    systemctl daemon-reload
    systemctl restart etcd 
    
  3. 在本机上测试
    etcd --advertise-client-urls参数理解_第10张图片
    本机测试
  4. 在同一个局域网的其他机器上测试


    etcd --advertise-client-urls参数理解_第11张图片
    harbor节点上测试

4.5 分析

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

4.5.1 etcdctl的基本工作流程?

etcd --advertise-client-urls参数理解_第12张图片
etcdctl的基本工作流程

4.6 总结:

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

你可能感兴趣的:(etcd --advertise-client-urls参数理解)