Toggle navigation
主页
English
K8S
Golang
Guitar
About Me
归档
标签
Welcome to Sanger's Blog!
consul简述
无
2023-03-06 11:07:56
6
0
0
sanger
# Consul简述 **Consul**是**服务网格**(service mesh)的一种解决方案,Consul是有服务发现,配置和**分段 **功能的全功能控制平面。这些功能可以根据需要单独使用,也可以一起使用以构建完整的服务网格。Consul需要一个数据平面,并支持代理和本机集成模型。Consul附带了一个简单的内置代理,因此开箱即用,但也支持Envoy等第三方代理集成。 Consul其实解决了运行微服务和云原生基础架构的网络和安全挑战。Consul提供了一种云原生的软件驱动路由和分段方法。它还带来了其他好处,比如故障处理,重试和网络可观察。 上面说到了服务网格和数据平面,服务网格通常是和微服务在一起说的服务网格,数据平面很好理解就是软件和服务架构中处理数据请求的那层,相比之下,控制平面就是配置和关闭数据平面的软件部分,这里Consul就起到了控制平面的作用。 ## Consul的主要特点有以下: ### 服务发现 Consul的客户端可以注册服务,例如api或mysql,客户端可以使用Consul来发现已注册的服务。使用DNS或HTTP,应用程序可以轻松找到它们依赖的服务。 ### 健康检测 Consul客户端可以提供任何数量的运行状况检查,这些检查可以与给定服务(“ Web服务器是否返回200 OK”)或本地节点(“内存利用率低于90%”)相关。你可以使用此信息来监视群集的运行状况,服务发现组件可以使用这些信息将流量从不正常的主机转移走。 ### KV存储 你应用程序可以将Consul的分层 键/值 存储用于多种目的,不限于 动态配置,功能标记,协调,集群leader选举等等。Consul提供的简单HTTP API使其非常易于使用。 ### 安全的服务通信 Consul可以为服务生成和分发TLS证书然后建立相互的TLS连接。意图 用于定义允许哪些服务进行通信。可以实时更改意图轻松管理服务分段,而不使用复杂的网络拓扑和静态防火墙规则。 ### 多数据中心 Consul开箱即用地支持多个数据中心。这意味着Consul的用户不必担心会构建其他抽象层以扩展到多个区域 Consul的设计对DevOps社区和应用程序开发人员非常友好,使其非常适合现代,灵活的基础架构。 ## Consul的基本架构 Consul是一个分布式,高度可用系统。本节将介绍基础知识,有意省略一些不必要的细节,可以快速了解Consul的工作方式。 向Consul提供服务的每个节点都运行着Consul的代理,当用来发现服务 或者 获取配置的键值对数据时,代理可以不需要。代理负责节点上的服务以及节点本身的健康检测。 代理与一台或多台Consul服务器通信。Consul服务器是存储和复制数据的地方。服务器本身选举一个领导者。虽然Consul可以在一台服务器上运行,但建议3到5个节点,以避免发生故障导致数据丢失。建议为每个数据中心都使用Consul服务器集群。 服务器维护一个目录,该目录是通过汇总代理提交的数据生成的。该目录维护着集群的高级视图,包括哪些服务可用,哪些节点运行这些服务,运行状况信息等等。 需要发现其他服务或节点的基础组件,可以查询任何Consul服务器或任何Consul代理。代理将查询自动转发到服务器。 每个数据中心运行一个Consul服务器集群。当发出跨数据中心的服务发现或配置请求时,本地Consul服务器将请求转发到远程数据中心并返回结果。 # 安装 有多种安装方式: - 二进制安装 - 包管理安装 - 容器安装 ## 下载二进制文件 [consul二进制版本列表](https://releases.hashicorp.com/consul) ``` wget https://releases.hashicorp.com/consul/1.15.0/consul_1.15.0_linux_amd64.zip ``` ## systemd方式启动 cat /etc/systemd/system/consul.service [参考](https://discuss.hashicorp.com/t/configure-consul-with-systemd-and-environmental-file/33189) ``` [Unit] Description="HashiCorp Consul - A service mesh solution" Documentation=https://www.consul.io/ Requires=network-online.target After=network-online.target [Service] User=consul Group=consul EnvironmentFile=/etc/consul.d/consul.env ExecStart=/usr/bin/consul agent -config-dir=/etc/consul.d/ ExecReload=/bin/kill --signal HUP $MAINPID KillMode=process KillSignal=SIGTERM Restart=on-failure LimitNOFILE=65536 [Install] WantedBy=multi-user.target ``` cat /etc/consul.d/consul.env: ``` { "data_dir": "/tmp/consul", "log_level": "INFO", "server": true, "bootstrap-expect": 1, "bind": "10.16.16.68" } ``` ## 其它安装方式 > 目前最新版本1.15支持直接apt、yum、dnf安装方式 https://developer.hashicorp.com/consul/downloads https://developer.hashicorp.com/consul/docs/k8s/installation/install-cli # 参考 https://www.consul.io/ https://yushuai-w.gitbook.io/consul/intro https://juejin.cn/post/6959794751340036132
上一篇:
gogs git clone 报错 Peer's Certificate issuer is not recognized
下一篇:
Redis 架构模式详解
0
赞
6 人读过
新浪微博
微信
更多分享
腾讯微博
QQ空间
人人网
文档导航