zoukankan      html  css  js  c++  java
  • etcd & confd 集中配置管理与自动更新

    一、ETCD安装

    下载地址:https://github.com/etcd-io/etcd/releases

    按照机器配置选择release版本进行下载。每个release下列举了不同机器环境的bash脚本,以下是以macOS环境下的3.4.14版本为例进行说明:

    ETCD_VER=v3.4.14            //版本号
    
    # choose either URL            //链接地址变量,DOWNLOAD_URL为真正的下载地址
    GOOGLE_URL=https://storage.googleapis.com/etcd
    GITHUB_URL=https://github.com/etcd-io/etcd/releases/download
    DOWNLOAD_URL=${GOOGLE_URL}
    
    // 删除已有的压缩包及解压文件夹
    rm -f /tmp/etcd-${ETCD_VER}-darwin-amd64.zip
    rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test
    
    // 下载压缩包
    curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-darwin-amd64.zip -o /tmp/etcd-${ETCD_VER}-darwin-amd64.zip
    // 压缩包解压后删除
    unzip /tmp/etcd-${ETCD_VER}-darwin-amd64.zip -d /tmp && rm -f /tmp/etcd-${ETCD_VER}-darwin-amd64.zip
    // 重命名文件夹
    mv /tmp/etcd-${ETCD_VER}-darwin-amd64/* /tmp/etcd-download-test && rm -rf mv /tmp/etcd-${ETCD_VER}-darwin-amd64
    
    // 检测是否生效
    /tmp/etcd-download-test/etcd --version
    /tmp/etcd-download-test/etcdctl version
    

    上述步骤不是固定的,基本下载压缩包,解压即可使用。另:如果网络条件不好,直接点击github上的下载链接,可能会被禁止,可改用wget对链接进行下载。

    etcdctl -get /xxx --prefix可查看/xxx路径下的所有key
    etcdctl -h查看使用命令,由于版本之间的差异,设置key命令可能为set(v2),也可能为put(v3),注意区分
    etcd可视化工具etcd-viewer测试的情况是暂时只能支持v2版本的HTTP api,而v3的gRPC api还不支持。暂时通过etcdctl进行使用

    二、confd安装

    下载地址:https://github.com/kelseyhightower/confd/releases

    与ETCD相似,直接点击链接可能会被禁止,使用wget。

    下载完成的文件是一个二进制文件(不带任何后缀),重命名为confd(非必须),使用命令chmod +x confd赋予执行权限。使用命令./confd --help查看是否生效

    三、两者相互配合

    使用onetime生成目标配置文件,官方示例:

    // etcd 设置key值,v3版本为put命令
    etcdctl set /myapp/database/url db.example.com
    etcdctl set /myapp/database/user rob
    
    // 建立模版源文件
    // /etc/confd/conf.d/myconfig.toml
    [template]
    src = "myconfig.conf.tmpl"
    dest = "/tmp/myconfig.conf"
    keys = [
        "/myapp/database/url",
        "/myapp/database/user",
    ]
    // /etc/confd/templates/myconfig.conf.tmpl
    [myconfig]
    database_url = {{getv "/myapp/database/url"}}
    database_user = {{getv "/myapp/database/user"}}
    
    // 单一执行
    confd -onetime -backend etcd -node http://127.0.0.1:2379
    

    执行完毕后可查看/tmp/myconfig.conf文件是否配置生效

    上述文件夹/etc/confd可通过./confd -confdir命令自定义,从而不需要一定在etc中进行文件配置

    单一执行命令-onetime可换为-watch命令,检测key更新,并且及时更新到目标配置文件

    注意:如果etcd版本为3时,-backend参数后面带etcdv3,否则confd将不能识别请求返回。(https://github.com/kelseyhightower/confd/issues/826)

    参考文章地址:

    https://coolex.info/blog/483.html
    https://www.jianshu.com/p/f68028682192

  • 相关阅读:
    Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法输入日志标题
    Linux下安装oracle数据库提示DISPLAY not set. Please set the DISPLAY and try again。
    redhat 关机注销命令详解
    VirtualBox的四种网络连接方式
    修改RedHat的系统显示时间
    insufficient memory to configure kdump(没有足够的内存)解决方法(待验证、待解决)
    xen坑随笔 heartbeat dpkg垃圾数据库清除
    tomcat 监控脚本
    负载均衡随笔
    GIT命令介绍
  • 原文地址:https://www.cnblogs.com/Mr-Kahn/p/14388881.html
Copyright © 2011-2022 走看看