一、背景

八年了,这个DCOS集群还在运行。随着业务量的增长,目前只是在做scale up,比如把4C32GB升级成8C64GB。但是,某些情况下,直接升级还是会高一些,比如在长连接集群里面,冬季业务旺季的时候,把6台4C32GB升级成8C64GB,在夏季业务淡季的时候再降配下来,可是呢,每年还是会有部分业务量增长,不全部增加的话业务是平均分配的,所以增加节点成为了不错的方案。

二、事件描述

这套DCOS刚刚经历了因为DCOS官方调整Auth0导致无法登录事件。大家都没有办法登录。后来调整oauth_enable false后可以登录了。这不,又来了这问题。

其实,早先长连接集群是有7台机器的,可是某一台好像总是有些问题。

[ERROR] 2024-05-13 10:47:00.101 [DiscoveryClient-HeartbeatExecutor-1] com.netflix.discovery.DiscoveryClient - DiscoveryClient_XCLOUD-NCS/9.0.26.130:6778 - was unable to send heartbeat!

com.sun.jersey.api.client.ClientHandlerException: org.apache.http.conn.ConnectTimeoutException: Connect to xcloud-discoveryserver-peer1.marathon.mesos:2000 timed out

[ERROR] 2024-05-13 10:47:00.100 [DiscoveryClient-HeartbeatExecutor-1] com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient - Request execution error com.sun.jersey.api.client.ClientHandlerException: org.apache.http.conn.ConnectTimeoutException: Connect to xcloud-discoveryserver-peer2.marathon.mesos:2000 timed out

最近一周一直在尝试新增节点做测试。遇到一个问题,总是不能正常运行,或者看起来正常运行,而且还没有overlay网络路由。经过一些排查,终于找到了原因。

现在的虚拟机已经无法使用过去的dcos slave节点镜像制作了,因为物理机架构不一样,ucloud官方不让用了。那就重建吧,重建后,内核有变化,如果用当前的内核版本,会出现内核相关的错误。
2024-05-23T09:38:05.png

通过手动安装内核可以安装成功。

而无法生成overlay 网络路由的原因,想了一圈,而且在本地测试也没有问题。看了一下master节点发现,三个master节点的dcos-navstar服务全都飘红。一个一个节点的重启后,恢复了。

下面记录下,如果以后再安装dcos 1.9.1的slave节点使用如下方法。

三、安装slave节点

(1)更换内核

# 更换内核
cd /tmp
wget https://d2.sddts.cn/d/download/dcos/kernel-3.10.0-862.9.1.el7.x86_64.rpm
wget https://d2.sddts.cn/d/download/dcos/linux-firmware-20180220-62.2.git6d51311.el7_5.noarch.rpm
yum install -y kernel-3.10.0-862.9.1.el7.x86_64.rpm linux-firmware-20180220-62.2.git6d51311.el7_5.noarch.rpm

(2)安装必要软件

# 删除无用的软件
yum remove -y firewalld

# 安装docker
mdkir -p /opt/software/ ; cd /opt/software/ ; wget https://d2.sddts.cn/d/download/dcos/docker.tar.gz
tar xzvf docker.tar.gz

(3)安装slave节点

# 安装slave节点
# @bootstrap
ssh root@10.9.28.18 "mkdir -p /opt/software/docker"
cd /opt/software/docker && scp -r * root@10.9.28.18:/opt/software/docker/

ssh root@10.9.28.18 "mkdir /opt/dcos_install_tmp"
cd /opt/genconf/serve && scp -r packages root@10.9.28.18:/opt/dcos_install_tmp/
cd /opt/genconf/serve && scp -r bootstrap root@10.9.28.18:/opt/dcos_install_tmp/

# @slave
cat  <<'EOF'>> /etc/group
docker:x:993:
nogroup:x:1000:
EOF

cd /opt/software/docker
yum install *.rpm --skip-broken
yum install docker*

cd /opt/
curl -O 10.9.127.126:80/dcos_install.sh
bash dcos_install.sh slave

# 配置hosts
10.42.255.5 umon.api.service.ucloud.cn
10.42.255.5 umon.api.service.ucloud.cn
10.10.172.209 inner.ha.balance

(4)节点修复

# 节点修复的方法
mount -o remount,rw '/sys/fs/cgroup'
ln -s /sys/fs/cgroup/cpu,cpuacct /sys/fs/cgroup/cpuacct,cpu

部署categraf

# 部署categraf
cd /opt && wget https://d2.sddts.cn/d/download/dcos/dcos.slave.categraf.tar.gz && tar xzvf dcos.slave.categraf.tar.gz
cat <<'EOF'>/etc/systemd/system/categraf.service
[Unit]
Description="Categraf"
After=network.target
[Service]
Type=simple
ExecStart=/opt/categraf/categraf
WorkingDirectory=/opt/categraf
Restart=on-failure
SuccessExitStatus=0
LimitNOFILE=65536
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=categraf
[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-relaod
systemctl restart categraf

(5)部署data目录

# 部署dcos服务用到的目录
mkdir -p /data ; wget https://d2.sddts.cn/d/download/dcos/dcos.slave.data.tar.gz ; tar xzvf dcos.slave.data.tar.gz
cd /data ; wget https://d2.sddts.cn/d/download/dcos/dcos.data.machtalk.tar.gz ; tar xzvf dcos.data.machtalk.tar.gz

# 部署openfalcon
cd /data/work/ && ./open-falcon start agent
# 修改/data/work/agent/config/cfg.json
最后修改:2024 年 05 月 23 日
如果觉得我的文章对你有用,请随意赞赏