更新时间:2024-09-25 18:26:16

1 ECeph扩容

该章节仅针对eceph融合部署场景,独立部署请参考对象存储独立部署及升级手册
注意:若ECeph集群有更换证书需求,可在eceph配置块下tls部分进行更新。需要将数字证书和证书密钥经过base64编码之后填入(记得去掉换行符)。
cat 数字证书.crt | base64 | tr -d '\n'
cat 证书密钥.key | base64 | tr -d '\n'

  1. 获取配置,执行:proton-cli get conf > cluster.yaml
  2. 编辑配置文件,编辑后保存(配置文件示例如下)
  3. 进入安装包解压目录,执行扩容:proton-cli apply -f cluster.yaml
  4. 扩容后确认eceph服务,执行:kubectl get pod -n anyshare | grep eceph
0# 注:
1# 1、该配置文件仅为示例说明,最终以实际环境中获取到的配置为准,配置文件中不涉及修改的组件无需关注
2# 2、配置文件中节点ip、内部ip(若未使用内部ip,无需加上internal_ip这行配置)、hostmname信息请根据实际环境填写
3# 3、单节点单master环境中数据服务均为单副本,扩容到三节点三master后,服务副本数与全新部署的三节点环境保持一致(nebula除外)
4# 4、各服务hosts列表中的节点名称必须包含在nodes列表内
5# 5、opensearch不扩容,proton-etcd、zookeeper之后单独执行扩容
6# 6、若获取到的配置文件中不存在grafana和prometheus,则忽略这两个组件的修改
7
8apiVersion: v1
9nodes:
10- internal_ip: 11.0.0.4
11 ip4: 10.3.91.101
12 name: node-91-101
13- internal_ip: 11.0.0.29
14 ip4: 10.3.91.102
15 name: node-91-102
16- internal_ip: 11.0.0.30
17 ip4: 10.3.91.103
18 name: node-91-103
19cms: {}
20cr:
21 local:
22 ha_ports:
23 chartmuseum: 15001
24 cr_manager: 15002
25 registry: 15000
26 rpm: 15003
27 hosts:
28 - node-91-101
29 - node-91-102
30 ports:
31 chartmuseum: 5001
32 cr_manager: 5002
33 registry: 5000
34 rpm: 5003
35 storage: /sysvol/proton_data/cr_data
36cs:
37 addons:
38 - node-exporter
39 - kube-state-metrics
40 cs_controller_dir: ./service-package
41 docker_data_dir: /sysvol/proton_data/cs_docker_data
42 etcd_data_dir: /sysvol/proton_data/cs_etcd_data
43 ha_port: 16643
44 host_network:
45 bip: 172.33.0.1/16
46 pod_network_cidr: 192.169.0.0/16
47 service_cidr: 10.96.0.0/12
48 ipFamilies:
49 - IPv4
50 master:
51 - node-91-101
52 - node-91-102
53 - node-91-103
54 provisioner: local
55installer_service: {}
56grafana:
57 data_path: /sysvol/grafana
58 hosts:
59 - node-91-101
60 resources:
61 limits:
62 cpu: "1"
63 memory: 3Gi
64 requests:
65 cpu: 500m
66 memory: 2Gi
67kafka:
68 data_path: /sysvol/kafka/kafka_data
69 env: null
70 hosts:
71 - node-91-101
72 - node-91-102
73 - node-91-103
74 resources:
75 limits:
76 cpu: "1"
77 memory: 2Gi
78 requests:
79 cpu: 500m
80 memory: 1Gi
81nebula:
82 data_path: /sysvol/nebula
83 graphd: {}
84 hosts:
85 - node-91-101
86 metad: {}
87 password: ffa3b5b81a1344ac202f078e
88 storaged: {}
89opensearch:
90 config:
91 hanlpRemoteextDict: http://ecoconfig-private.anyshare:32128/api/ecoconfig/v1/word-list/remote_ext_dict
92 jvmOptions: -Xmx8g -Xms8g
93 data_path: /anyshare/opensearch
94 hosts:
95 - node-91-101
96 mode: master
97 resources:
98 limits:
99 cpu: "8"
100 memory: 40Gi
101 requests:
102 cpu: "1"
103 memory: 2Gi
104 settings:
105 action.auto_create_index: -company*,+*
106 bootstrap.memory_lock: false
107 cluster.routing.allocation.disk.watermark.flood_stage: 70%
108 cluster.routing.allocation.disk.watermark.high: 65%
109 cluster.routing.allocation.disk.watermark.low: 60%
110prometheus:
111 data_path: /sysvol/prometheus
112 hosts:
113 - node-91-101
114 - node-91-102
115 resources:
116 limits:
117 cpu: "1"
118 memory: 3Gi
119 requests:
120 cpu: 500m
121 memory: 2Gi
122proton_etcd:
123 data_path: /sysvol/proton-etcd/proton-etcd_data
124 hosts:
125 - node-91-101
126proton_mariadb:
127 admin_passwd: eisoo.com123
128 admin_user: root
129 config:
130 innodb_buffer_pool_size: 8G
131 resource_limits_memory: 24G
132 resource_requests_memory: 24G
133 data_path: /sysvol/mariadb
134 hosts:
135 - node-91-101
136 - node-91-102
137 - node-91-103
138proton_mongodb:
139 admin_passwd: eisoo.com123
140 admin_user: root
141 data_path: /sysvol/mongodb/mongodb_data
142 hosts:
143 - node-91-101
144 - node-91-102
145 - node-91-103
146proton_mq_nsq:
147 data_path: /sysvol/mq-nsq/mq-nsq_data
148 hosts:
149 - node-91-101
150 - node-91-102
151 - node-91-103
152proton_policy_engine:
153 data_path: /sysvol/policy-engine/policy-engine_data
154 hosts:
155 - node-91-101
156 - node-91-102
157 - node-91-103
158proton_redis:
159 admin_passwd: eisoo.com123
160 admin_user: root
161 data_path: /sysvol/redis/redis_data
162 hosts:
163 - node-91-101
164 - node-91-102
165 - node-91-103
166resource_connect_info:
167 etcd:
168 hosts: proton-etcd.resource
169 port: 2379
170 secret: etcdssl-secret
171 source_type: internal
172 mongodb:
173 auth_source: anyshare
174hosts: mongodb-mongodb-0.mongodb-mongodb.resource,mongodb-mongodb-1.mongodb-mongodb.resource,mongodb-mongodb-2.mongodb-mongodb.resource
175 password: eisoo.com123
176 port: 28000
177 replica_set: rs0
178 source_type: internal
179 username: anyshare
180 mq:
181 mq_hosts: proton-mq-nsq-nsqd.resource
182 mq_lookupd_hosts: proton-mq-nsq-nsqlookupd.resource
183 mq_lookupd_port: 4161
184 mq_port: 4151
185 mq_type: nsq
186 source_type: internal
187 opensearch:
188 hosts: opensearch-master.resource
189 password: eisoo.com123
190 port: 9200
191 protocol: http
192 source_type: internal
193 username: admin
194 version: 7.10.0
195 policy_engine:
196 hosts: proton-policy-engine-proton-policy-engine-cluster.resource
197 port: 9800
198 source_type: internal
199 rds:
200 hosts: mariadb-mariadb-master.resource
201 hosts_read: mariadb-mariadb-cluster.resource
202 password: eisoo.com123
203 port: 3330
204 port_read: 3330
205 rds_type: MariaDB
206 source_type: internal
207 username: anyshare
208 redis:
209 connect_type: sentinel
210 master_group_name: mymaster
211 password: eisoo.com123
212 sentinel_hosts: proton-redis-proton-redis-sentinel.resource
213 sentinel_password: eisoo.com123
214 sentinel_port: 26379
215 sentinel_username: root
216 source_type: internal
217 username: root
218zookeeper:
219 data_path: /sysvol/zookeeper/zookeeper_data
220 env: null
221 hosts:
222 - node-91-101
223 resources:
224 limits:
225 cpu: "1"
226 memory: 2Gi
227 requests:
228 cpu: 500m
229 memory: 1Gi
230eceph:
231 hosts: #Eceph部署节点
232 - node-91-101
233 - node-91-102 # 新增Eceph节点
234 - node-91-103 # 新增Eceph节点
235 keepalived:
236external: 10.3.91.105/24 #与节点ip同网段,且未被占用
237internal: 11.0.0.168/24 #与内部ip同网段,且未被占用
238 tls:
239 certificate-data: *** #该字段为加密内容,手册中***代替加密内容,此处内容不用修改
240 key-data: *** #该字段为加密内容,手册中***代替加密内容,此处内容不用修改
241 secret: eceph-2024-01-08-09-54-54 #此处内容为示例内容,不用修改
242
复制

1.1 扩容结果确认

查看eceph服务状态.png

第1步 若使用了内部ip地址,需将内部地址加入防火墙规则,执行:firewall-cmd --add-rich-rule="rule family="ipv4" source address="<内部IP>" accept"; firewall-cmd --add-rich-rule="rule family="ipv4" source address="<内部IP>" accept" --permanent
第2步 登录eceph控制台,添加节点,依次将扩容的节点加入(依次添加节点时需要等待一个节点添加完成后再加入下一个,可刷新页面查看当前节点添加是否完成)

第2步 登录eceph控制台,添加节点,依次将扩容的节点加入(依次添加节点时需要等待一个节点添加完成后再加入下一个,可刷新页面查看当前节点添加是否完成)

eceph添加节点.png

添加eceph节点2.png

添加eceph节点完成.png

第3步 将新加入的节点的磁盘加入到保护域

添加保护域.png

添加保护域2.png

第4步 修改对象存储信息,登录部署工作台,进入【数据湖】--【对象存储】,将服务器地址修改为vip(proton-cli get conf获取到的配置中eceph的ivip或ovip),图中示例为内部vip:

修改对象存储信息.png

修改对象存储信息2.png

2 OSS网关扩容

2.1 OSSGateway数据服务扩容

第1步 运行kubectl get nodes --show-labels,查看所有节点的labels信息。其中OSSGateway数据服务所有节点需要有ossgateway/ossgateway-{bucket}=OSSGateway的标签

查看lab信息.png

第2步 扩容数据服务,需要在其他新添加的节点上增加对应的标签,命令如下:kubectl label nodes {nodename} ossgateway/ossgateway-{bucket}=OSSGateway

添加标签.png

第3步 查看数据服务是否扩容成功:kubectl get pods -n anyshare | grep ossgateway

查看扩容结果.png

2.2 OSSGateway管理服务扩容

第1步 执行命令:kubectl -n anyshare scale deploy ossgatewaymanager --replicas=3

扩容副本.png

第2步 查看管理服务是否扩容成功:kubectl get pods -n anyshare | grep ossgatewaymanager

查看扩容结果2.png

2.3 修改cms-release-config-ossgateway配置

第1步 获取cms-release-config-ossgateway配置,执行命令:kubectl get secret cms-release-config-ossgateway -n anyshare -oyaml

获取cms配置.png

第2步 使用base64 -d解码后添加新节点对应的ip信息

获取节点IP.png

第3步 然后重新base64编码,写入cms-release-config-ossgateway,执行命令:kubectl edit secret cms-release-config-ossgateway -n anyshare

base64编码.png

base64编码2.png

2.4 OSSGateway配置更新

第1步 调用如下接口设置内部IP:
curl -X PUT http://kubectl get svc -n anyshare|grep deploy-service|awk '{print $3}':9703/api/deploy-manager/v1/containerized/upmulti-instance-service/OSSGatewayService/
说明:无论接口是否报错,均进行下一步检测配置是否成功

设置内部IP.png

第2步 内部IP设置检查
1)查看redis中mongodb内部地址配置是否正确。
运行如下命令获取所有存储的key:
kubectl exec -c redis proton-redis-proton-redis-0 -n resource -- redis-cli --user root --pass eisoo.com123 -n 0 keys_new /ossgw/*
逐个查看所有存储key下的具体value:
kubectl exec -c redis proton-redis-proton-redis-0 -n resource -- redis-cli --user root --pass eisoo.com123 -n 0 GET {key}

查看所有存储key下的具体value.png

2)查看ossgateway-{bucket}的svc的endpoints配置是否正确。

查看endpoints配置是否正确.png

第3步 查看mongodb数据库配置是否完整,此时sys_config中新启动的数据服务pod没有存储配置信息(依次进入mongodb容器连接mongodb,找到mongodb的primary节点进行操作,下图仅为示例)。

查看mongodb数据库配置是否完整.png

第4步 清除sys_config中的配置并重启ossgateway数据服务

  1. 清除sys_config的命令:db.sys_config.remove({})

    清除sys_config的命令.png

  2. 重启ossgateway数据服务的命令:for i in kubectl get pods -A|grep ossgateway-|awk '{print $2}';do kubectl delete pod $i -n anyshare;done

    重启ossgateway数据服务的命令.png

第5步 界面上修改存储信息,让信息重新写入mongodb:在界面修改存储的IP或者端口(如10002改为10001),保存。有多个存储的话,需要修改多次。修改后查看数据

查看修改后数据.png