1 ECeph扩容
该章节仅针对eceph融合部署场景,独立部署请参考对象存储独立部署及升级手册
注意:若ECeph集群有更换证书需求,可在eceph配置块下tls部分进行更新。需要将数字证书和证书密钥经过base64编码之后填入(记得去掉换行符)。
cat 数字证书.crt | base64 | tr -d '\n'
cat 证书密钥.key | base64 | tr -d '\n'
- 获取配置,执行:proton-cli get conf > cluster.yaml
- 编辑配置文件,编辑后保存(配置文件示例如下)
- 进入安装包解压目录,执行扩容:proton-cli apply -f cluster.yaml
- 扩容后确认eceph服务,执行:kubectl get pod -n anyshare | grep eceph
# 注:
# 1、该配置文件仅为示例说明,最终以实际环境中获取到的配置为准,配置文件中不涉及修改的组件无需关注
# 2、配置文件中节点ip、内部ip(若未使用内部ip,无需加上internal_ip这行配置)、hostmname信息请根据实际环境填写
# 3、单节点单master环境中数据服务均为单副本,扩容到三节点三master后,服务副本数与全新部署的三节点环境保持一致(nebula除外)
# 4、各服务hosts列表中的节点名称必须包含在nodes列表内
# 5、opensearch不扩容,proton-etcd、zookeeper之后单独执行扩容
# 6、若获取到的配置文件中不存在grafana和prometheus,则忽略这两个组件的修改
apiVersion: v1
nodes:
- internal_ip: 11.0.0.4
ip4: 10.3.91.101
name: node-91-101
- internal_ip: 11.0.0.29
ip4: 10.3.91.102
name: node-91-102
- internal_ip: 11.0.0.30
ip4: 10.3.91.103
name: node-91-103
cms: {}
cr:
local:
ha_ports:
chartmuseum: 15001
cr_manager: 15002
registry: 15000
rpm: 15003
hosts:
- node-91-101
- node-91-102
ports:
chartmuseum: 5001
cr_manager: 5002
registry: 5000
rpm: 5003
storage: /sysvol/proton_data/cr_data
cs:
addons:
- node-exporter
- kube-state-metrics
cs_controller_dir: ./service-package
docker_data_dir: /sysvol/proton_data/cs_docker_data
etcd_data_dir: /sysvol/proton_data/cs_etcd_data
ha_port: 16643
host_network:
bip: 172.33.0.1/16
pod_network_cidr: 192.169.0.0/16
service_cidr: 10.96.0.0/12
ipFamilies:
- IPv4
master:
- node-91-101
- node-91-102
- node-91-103
provisioner: local
installer_service: {}
grafana:
data_path: /sysvol/grafana
hosts:
- node-91-101
resources:
limits:
cpu: "1"
memory: 3Gi
requests:
cpu: 500m
memory: 2Gi
kafka:
data_path: /sysvol/kafka/kafka_data
env: null
hosts:
- node-91-101
- node-91-102
- node-91-103
resources:
limits:
cpu: "1"
memory: 2Gi
requests:
cpu: 500m
memory: 1Gi
nebula:
data_path: /sysvol/nebula
graphd: {}
hosts:
- node-91-101
metad: {}
password: ffa3b5b81a1344ac202f078e
storaged: {}
opensearch:
config:
hanlpRemoteextDict: http://ecoconfig-private.anyshare:32128/api/ecoconfig/v1/word-list/remote_ext_dict
jvmOptions: -Xmx8g -Xms8g
data_path: /anyshare/opensearch
hosts:
- node-91-101
mode: master
resources:
limits:
cpu: "8"
memory: 40Gi
requests:
cpu: "1"
memory: 2Gi
settings:
action.auto_create_index: -company*,+*
bootstrap.memory_lock: false
cluster.routing.allocation.disk.watermark.flood_stage: 70%
cluster.routing.allocation.disk.watermark.high: 65%
cluster.routing.allocation.disk.watermark.low: 60%
prometheus:
data_path: /sysvol/prometheus
hosts:
- node-91-101
- node-91-102
resources:
limits:
cpu: "1"
memory: 3Gi
requests:
cpu: 500m
memory: 2Gi
proton_etcd:
data_path: /sysvol/proton-etcd/proton-etcd_data
hosts:
- node-91-101
proton_mariadb:
admin_passwd: eisoo.com123
admin_user: root
config:
innodb_buffer_pool_size: 8G
resource_limits_memory: 24G
resource_requests_memory: 24G
data_path: /sysvol/mariadb
hosts:
- node-91-101
- node-91-102
- node-91-103
proton_mongodb:
admin_passwd: eisoo.com123
admin_user: root
data_path: /sysvol/mongodb/mongodb_data
hosts:
- node-91-101
- node-91-102
- node-91-103
proton_mq_nsq:
data_path: /sysvol/mq-nsq/mq-nsq_data
hosts:
- node-91-101
- node-91-102
- node-91-103
proton_policy_engine:
data_path: /sysvol/policy-engine/policy-engine_data
hosts:
- node-91-101
- node-91-102
- node-91-103
proton_redis:
admin_passwd: eisoo.com123
admin_user: root
data_path: /sysvol/redis/redis_data
hosts:
- node-91-101
- node-91-102
- node-91-103
resource_connect_info:
etcd:
hosts: proton-etcd.resource
port: 2379
secret: etcdssl-secret
source_type: internal
mongodb:
auth_source: anyshare
hosts: mongodb-mongodb-0.mongodb-mongodb.resource,mongodb-mongodb-1.mongodb-mongodb.resource,mongodb-mongodb-2.mongodb-mongodb.resource
password: eisoo.com123
port: 28000
replica_set: rs0
source_type: internal
username: anyshare
mq:
mq_hosts: proton-mq-nsq-nsqd.resource
mq_lookupd_hosts: proton-mq-nsq-nsqlookupd.resource
mq_lookupd_port: 4161
mq_port: 4151
mq_type: nsq
source_type: internal
opensearch:
hosts: opensearch-master.resource
password: eisoo.com123
port: 9200
protocol: http
source_type: internal
username: admin
version: 7.10.0
policy_engine:
hosts: proton-policy-engine-proton-policy-engine-cluster.resource
port: 9800
source_type: internal
rds:
hosts: mariadb-mariadb-master.resource
hosts_read: mariadb-mariadb-cluster.resource
password: eisoo.com123
port: 3330
port_read: 3330
rds_type: MariaDB
source_type: internal
username: anyshare
redis:
connect_type: sentinel
master_group_name: mymaster
password: eisoo.com123
sentinel_hosts: proton-redis-proton-redis-sentinel.resource
sentinel_password: eisoo.com123
sentinel_port: 26379
sentinel_username: root
source_type: internal
username: root
zookeeper:
data_path: /sysvol/zookeeper/zookeeper_data
env: null
hosts:
- node-91-101
resources:
limits:
cpu: "1"
memory: 2Gi
requests:
cpu: 500m
memory: 1Gi
eceph:
hosts: #Eceph部署节点
- node-91-101
- node-91-102 # 新增Eceph节点
- node-91-103 # 新增Eceph节点
keepalived:
external: 10.3.91.105/24 #与节点ip同网段,且未被占用
internal: 11.0.0.168/24 #与内部ip同网段,且未被占用
tls:
certificate-data: *** #该字段为加密内容,手册中***代替加密内容,此处内容不用修改
key-data: *** #该字段为加密内容,手册中***代替加密内容,此处内容不用修改
secret: eceph-2024-01-08-09-54-54 #此处内容为示例内容,不用修改
1.1 扩容结果确认
第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控制台,添加节点,依次将扩容的节点加入(依次添加节点时需要等待一个节点添加完成后再加入下一个,可刷新页面查看当前节点添加是否完成)
第3步 将新加入的节点的磁盘加入到保护域
第4步 修改对象存储信息,登录部署工作台,进入【数据湖】--【对象存储】,将服务器地址修改为vip(proton-cli get conf获取到的配置中eceph的ivip或ovip),图中示例为内部vip:
2 OSS网关扩容
2.1 OSSGateway数据服务扩容
第1步 运行kubectl get nodes --show-labels,查看所有节点的labels信息。其中OSSGateway数据服务所有节点需要有ossgateway/ossgateway-{bucket}=OSSGateway的标签
第2步 扩容数据服务,需要在其他新添加的节点上增加对应的标签,命令如下:kubectl label nodes {nodename} ossgateway/ossgateway-{bucket}=OSSGateway
第3步 查看数据服务是否扩容成功:kubectl get pods -n anyshare | grep ossgateway
2.2 OSSGateway管理服务扩容
第1步 执行命令:kubectl -n anyshare scale deploy ossgatewaymanager --replicas=3
第2步 查看管理服务是否扩容成功:kubectl get pods -n anyshare | grep ossgatewaymanager
2.3 修改cms-release-config-ossgateway配置
第1步 获取cms-release-config-ossgateway配置,执行命令:kubectl get secret cms-release-config-ossgateway -n anyshare -oyaml
第2步 使用base64 -d解码后添加新节点对应的ip信息
第3步 然后重新base64编码,写入cms-release-config-ossgateway,执行命令:kubectl edit secret cms-release-config-ossgateway -n anyshare
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/
说明:无论接口是否报错,均进行下一步检测配置是否成功
第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}
2)查看ossgateway-{bucket}的svc的endpoints配置是否正确。
第3步 查看mongodb数据库配置是否完整,此时sys_config中新启动的数据服务pod没有存储配置信息(依次进入mongodb容器连接mongodb,找到mongodb的primary节点进行操作,下图仅为示例)。
第4步 清除sys_config中的配置并重启ossgateway数据服务
-
清除sys_config的命令:db.sys_config.remove({})
-
重启ossgateway数据服务的命令:for i in
kubectl get pods -A|grep ossgateway-|awk '{print $2}'
;do kubectl delete pod $i -n anyshare;done
第5步 界面上修改存储信息,让信息重新写入mongodb:在界面修改存储的IP或者端口(如10002改为10001),保存。有多个存储的话,需要修改多次。修改后查看数据