zoukankan      html  css  js  c++  java
  • consul配置

    参考:https://blog.csdn.net/achenyuan/article/details/80389410

    gcp:
    consul安装目录:/usr/local/bin/consul
    consul配置目录:/etc/consul.d

    mac:
    consul安装目录:/usr/local/bin/consul
    consul配置目录:/etc/consul.d

    一、开发基本搭建
    1.quick-start: consul agent -dev -http-port 8888 -ui -client 0.0.0.0
    -dev 开发模式
    -http-port 暴露http端口
    -ui 开启consulUI 默认开启
    -client 0.0.0.0 允许公网访问

    访问 ip:8888/可以看到consul主界面

    2.查看集群状态
    consul members

    3.配置文件
    使用-config-dir命令行参数,指定配置文件
    就是指定加载置文件的目录,该目录下所有的以.json结尾配置文件加载进去,它的加载顺序是根据26个字母的顺序加进行加载配置文件的。目录必需为consul.d,文件内容都是json格式的数据。默认后面文件定义配置会覆盖前面文件定义的配置。
    例如/etc/consul.d目录下合建basic.json:
    {
    "ports": {
    "http": 8888
    }
    }

    consul agent -dev -config-dir /etc/consul.d/ -client 0.0.0.0

    二、生产集群搭建
    1.启动server节点,并设为server-leader
    consul agent -server -ui -bootstrap-expect=1 -config-dir=/tmp/consul.d -data-dir=/tmp/consul -node=gcp -advertise=35.220.183.116 -bind=0.0.0.0 -client=0.0.0.0
    -server:服务器模式
    -ui:能web-ui展示
    -bootstrap-expect:server为1时即选择server集群leader
    -data-dir:consul状态存储文件地址
    -node:指定结点名
    advertise:本地ip地址(公网ip可以与不同内网的机器搭建集群,只是内网可以填内网ip)
    -client:指定可访问这个服务结点的ip

           Version: 'v1.6.1'
           Node ID: '2f25f9c0-f9d9-a857-1651-c451c9112a22'
         Node name: 'gcp'
        Datacenter: 'dc1' (Segment: '<all>')
            Server: true (Bootstrap: true)
       Client Addr: [0.0.0.0] (HTTP: 8888, HTTPS: -1, gRPC: -1, DNS: 8600)
      Cluster Addr: IP (LAN: 8301, WAN: 8302)
           Encrypt: Gossip: false, TLS-Outgoing: false, TLS-Incoming: false, Auto-Encrypt-TLS: false
    

    Cluster Addr集群地址是我们上面advertise指定的ip地址,8888是配置的tcp地址。

    2.机器2(本地)server节点
    consul agent -server -ui -bootstrap-expect=1 -data-dir=/tmp/consul.d -node=mac-server -advertise=192.168.28.1 -bind=0.0.0.0 -client=0.0.0.0

    advertise:192.168.28.1 vmvare的vmnet8地址

    加入到gcp集群中:
    consul join 公网ip

    Error joining address '35.220.183.116': Unexpected response code: 500 (1 error occurred:
    * Failed to join 35.220.183.116: dial tcp 35.220.183.116:8301: connect: connection refused

    报这个错的原因可能是防火墙的原因(gcp的部分端口不能开启)。

    在gcp的ports.json中配置LAN端口(LAN: 8301, WAN: 8302)serf_lan

    dns : 默认8600.
    http :默认8500.
    https: 默认-1 (disabled).
    serf_lan:默认8301.
    serf_wan: 默认 8302.
    server: 默认8300.
    配置:
    {
    "ports": {
    "http": 8888,
    "serf_lan": 8889,
    "serf_wan": 8890
    }
    }

           Version: 'v1.6.1'
           Node ID: '9eb7b273-8683-a67e-1a02-6077f014410f'
         Node name: 'gcp'
        Datacenter: 'dc1' (Segment: '<all>')
            Server: true (Bootstrap: true)
       Client Addr: [0.0.0.0] (HTTP: 8888, HTTPS: -1, gRPC: -1, DNS: 8600)
      Cluster Addr: IP (LAN: 8889, WAN: 8890)
           Encrypt: Gossip: false, TLS-Outgoing: false, TLS-Incoming: false, Auto-Encrypt-TLS: false
    

    可以看到LAN和WAN的ip已经修改:
    Cluster Addr: IP (LAN: 8889, WAN: 8890)

    再次执行:
    consul join 公网ip


    若子节点为unhealth状态,则无法下掉服务,需要先下掉节点

  • 相关阅读:
    Istio技术与实践02:源码解析之Istio on Kubernetes 统一服务发现
    Istio技术与实践01: 源码解析之Pilot多云平台服务发现机制
    深度剖析Kubernetes API Server三部曲
    深度剖析Kubernetes API Server三部曲
    深度剖析Kubernetes API Server三部曲
    深入了解Kubernetes REST API的工作方式
    Cassandra schema version 不一致
    ByteToMessageDecoder
    Byte Bit
    为什么要用Executors.defaultThreadFactory().newThread(run);创建线程?
  • 原文地址:https://www.cnblogs.com/xiaohan970121/p/11609090.html
Copyright © 2011-2022 走看看