Consul

Consul

简介

Consul 是一种多网络管理工具,提供功能齐全的服务网格(ServiceMesh)解决方案,可解决运营微服务和云基础设施(多云和混合云)的网络和安全挑战。

安装与部署

在本机上安装

1
2
3
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/fedora/hashicorp.repo
sudo dnf -y install consul

注:其他平台请参照 官方文档

在 Kubernetes 上部署

注:在部署 Consul 之前需要安装 Helm 并在 Kubernetes 上配置 StorageClass。

生成配置文件:

1
2
helm repo add hashicorp https://helm.releases.hashicorp.com
helm inspect values hashicorp/consul > values.yaml

配置下面的内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
global:
enabled: true
logLevel: "info"
logJSON: false
name: consul
server:
enabled: true
storageClass: nfs-client
ui:
enbaled: true
ingress:
enabled: true
ingressClassName: "nginx"
pathType: Prefix
hosts: [ { host:"<host>" } ]
connectInject:
enabled: true
transparentProxy:
defaultEnabled: true
cni:
enabled: true
logLevel: info
cniBinDir: "/opt/cni/bin"
cniNetDir: "/etc/cni/net.d"

然后使用下面的命令部署集群:

1
helm install consul hashicorp/consul --create-namespace --namespace consul --values values.yaml

注: 在配置

API

Consul 服务若出现异常可以通过此种方式进行删除:

request
1
2
3
4
5
6
7
8
### 检查服务状态
GET http://<host>:8500/v1/agent/checks

### 查看服务列表
GET http://<host>:8500/v1/agent/services

### 刪除空服务
PUT http://<host>:8500/v1/agent/service/deregister/<service-name>

在 Kubernetes 上开发与部署服务

流程及插件文档详见 整合文档

部署样例参见:

Nginx Ingress Consul 服务部署

参考资料

官方文档


Consul
https://wangqian0306.github.io/2022/consul/
作者
WangQian
发布于
2022年6月23日
许可协议