Consul中文文档
转载请注明🙂,喜欢请一键三连哦 😊

系列文章目录

Consul专栏—Consul工作原理及落地实践


前言

本篇介绍下, 在各环境搭建(Kubernetes、Docker、云主机、Mac)搭建Consul集群。

如果大家对启动命令中的各参数不熟悉的话,可以参考Consul中文文档—Consul官方部署都配置了哪些启动参数, 文章中对各参数有详细的介绍。

一、K8s部署Consul

参考文档: Consul k8s 部署官方指引

1.1 Helm安装Consul

1.1.1 配置Helm Chart

helm repo add hashicorp https://helm.releases.hashicorp.com

# "hashicorp" has been added to your repositories

1.1.2 参数配置

Helm Chart Vlue 支持高度自定义设置, 可参考Consul Helm Chart 配置文档Helm Chart中的values.yaml 文件进行自定义配置, 如 Server节点、镜像、反亲和、Client、ServiceMesh。

如自定义配置文件: config.yaml, (增大了Server节点规格):

# config.yaml

# Configure global settings in this section.
global:
  image: "hashicorp/consul:1.9.1"
# Configure your Consul servers in this section.
server:
  # Specify the resources that servers request for placement. These values will serve a large environment.
  resources: |
    requests:
      memory: "32Gi"
      cpu: "4"
      disk: "50Gi"
    limits:
      memory: "32Gi"
      cpu: "4"
      disk: "50Gi"

1.1.3 部署Consul

# helm 3.x
helm install -f config.yaml hashicorp hashicorp/consul

# helm 2.x
helm install -f  config.yaml --name hashicorp hashicorp/consul

1.1.4 验证


# 确认Pod状态
kubectl get pods

# 确认 LoadBalancer Ingress 是否可用
kubectl describe services hashicorp-consul-server

# 可通过CLI or API 访问
kubectl exec <pod name> -it /bin/ash

二、Docker搭建Consul开发环境

下面是我平时开发的测试环境搭建, 由于存储呀,高可用问题都没有配置, 所以不要应用于生产环境。

参考文档: Consul-Docker

2.1 Docker启动命令

$ docker run -d -p 8500:8500 -v /data/consul:/consul/data -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_1 consul agent -server -bootstrap -ui -node=consul-server1 -client='0.0.0.0'

./consul agent -server=true -datacenter={集群名称} -bootstrap-expect={server节点数}  -data-dir={数据保存路径} -config-dir={配置文件路径} -client=0.0.0.0 -log-level=debug -bind={本机IP} -ui -node={本机IP} -retry-join={另一节点IP}

参考链接: https://www.jianshu.com/p/b246ae1e1bcd

2.2 单节点安装

  docker run -d -p 8500:8500  --name=consul-server1 consul agent -server -bind='172.17.0.2'  -bootstrap=true -node='consul-server1' -client='0.0.0.0' -ui

2.2 集群模式安装


# 三个Server节点
  docker run -d -p 8500:8500  --name=consul-server1 consul agent -server -bind='172.17.0.2' -  -bootstrap-expect=3 -node='consul.node1' -client='0.0.0.0' -ui

  docker run -d -p 18502:8500 --name=consul-server2 consul agent -server -bind='172.17.0.3'    -join='172.17.0.2'  -node='consul.node2'  -client='0.0.0.0' -ui

  docker run -d -p 18503:8500 --name=consul-server3 consul agent -server -bind='172.17.0.4'  -join='172.17.0.2'  -node='consul.node3' -client='0.0.0.0' -u

# 两个Client节点

  docker run -d  -p 18504:8500 --name=consul-client1 consul agent -server=false -bind='172.17.0.5'  -join='172.17.0.2'  -node='consul.client1' -client='0.0.0.0' -ui

  docker run -d  -p 18505:8500 --name=consul-client2 consul agent -server=false -bind='172.17.0.6'  -join='172.17.0.2'  -node='consul.client2' -client='0.0.0.0' -ui

2.4 验证

本地可以在浏览器中访问: 127.0.0.1:8500 、127.0.0.1:18502、127.0.0.1:18503…

2.5 Docker-Compose安装

可参考使用docker-compose搭建consul集群环境

三、Centos (虚机,云主机、物理机) 搭建Consul开发环境

参考: Consul安装官方指引文档

  1. 步骤概括: 下载,解压
export CONSUL_VERSION="1.8.0"

export CONSUL_URL="https://releases.hashicorp.com/consul"

curl --silent --remote-name \
  ${CONSUL_URL}/${CONSUL_VERSION}/consul_${CONSUL_VERSION}_linux_amd64.zip
  
unzip consul_${CONSUL_VERSION}_linux_amd64.zip

sudo mv consul /usr/bin/
  1. 启动
nohup consul agent -server=true -datacenter=jdsf-test -node={本机可访问的IP地址} -bootstrap=true -data-dir=./data -config-dir=./config -client=0.0.0.0 -log-level=debug -bind=127.0.0.1 -ui &

四、Mac OS搭建Consul开发环境

  1. 安装
brew install consul 
  1. 启动
consul agent -server=true -datacenter=myconsul -node=127.0.0.1 -bootstrap=true -data-dir=data -config-dir=config -client=0.0.0.0 -log-level=debug -bind=127.0.0.1 -ui
  1. 测试

本地可以直接访问: 127.0.0.1:8500

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐