配置consul client
迁移过程中,consul的server集群会保持独立,所以需要为kubernetes集群配置client节点,即将kubernetes集群内每个node上都部署一个consul client。
我们操作一下。

确认所在集群与区域

1
kubectx
Copied!

创建命名空间

1
$ k create namespace consul-client
2
3
# 切换
4
$ kubens consul-client
Copied!

下载consul的helm charts

我们使用charts进行发布
1
# 请git clone到本地
2
git clone https://github.com/spotmaxtech/consul-helm.git
3
cd consul-helm && git checkout spotmax
Copied!
spotmax是fork了官方helm并做了修改,所以使用spotmax分之

获取consul server的信息

这部分信息可以从运维server集群的管理员获得,或是找到旧节点上的初始化脚本处获得,例如:as_autoscaling.sh

注册的data center

Datacenter is the name of the datacenter that the agents should register as.
1
# 可以从现有服务节点初始化程序中找到,如
2
datacenter: mv-se-consul
Copied!

join的server ip地址

1
# 指向server的其中一个ip地址
2
fk-consul-ali.rayjump.com
3
sg-consul-ali.rayjump.com
4
172.31.4.74
Copied!

根据data center信息修改charts

global enable改成false

我们只需要安装client
1
global:
2
# enabled is the master enabled switch. Setting this to true or false
3
# will enable or disable all the components within this chart by default.
4
# Each component can be overridden using the component-specific "enabled"
5
# value.
6
enabled: false
Copied!

指定好data center信息

1
# global子项
2
datacenter: mv-se-consul
Copied!

配置好client项

1
client:
2
enabled: true # 改成true
3
join:
4
- 172.31.4.74 # 改成server的ip
Copied!

安装consul client charts

1
$ helm install consul-client ./
Copied!

为consul client增加服务

1
$ cd addons
2
$ k create -f consul-client-svc.yaml
Copied!

验证

查看资源
1
# 查看资源
2
$ k get all
3
NAME READY STATUS RESTARTS AGE
4
pod/consul-client-consul-7gwgz 1/1 Running 0 9d
5
pod/consul-client-consul-qt8xj 1/1 Running 0 9d
6
7
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
8
service/consul-client ClusterIP 10.100.31.205 <none> 8500/TCP 2m54s
9
10
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
11
daemonset.apps/consul-client-consul 2 2 2 2 2 <none> 9d
Copied!
查看consul pod日志,提示很多连接信息表示已经连接上了
1
$ k logs consul-client-consul-7gwgz
2
2020/01/08 14:27:50 [INFO] serf: attempting reconnect to se_adserver_online:52.78.188.59 172.31.16.87:8301
3
2020/01/08 14:28:07 [INFO] serf: EventMemberFailed: se_adserver_rankerv2:13.209.13.28 172.31.2.43
4
2020/01/08 14:28:30 [INFO] serf: attempting reconnect to se_adserver_online:54.180.9.218 172.31.8.31:8301
Copied!
访问服务
1
kubectl run busybox --rm -i --tty --image busybox -- sh
2
3
$ wget -qO- http://consul-client.consul-client.svc.cluster.local:8500/v1/catalog/nodes
Copied!

FAQ

有问题请留言