暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

使用shell脚本来处理阿里云SLB权重

运维笔谈 2025-02-21
219
前面我们使用了阿里云CLI:aliyun 命令来设置我们的SLB节点权重:使用阿里云CLI设置负载均衡CLB权重数值之前的方法是直接使用shell命令。这次我们做成脚本,然后使用定时任务,这样就不需要人工干预了。
由于我们需要crontab调度,所以我们需要注意脚本环境变量的问题,参考脚本如下:
    #!/bin/bash


    # 配置变量
    REGION="cn-shanghai"  # 替换为我们的CLB实例所在的区域,比如上海
    LOAD_BALANCER_ID="lb-****12f"   # 替换为我们的CLB实例ID
    ECS_INSTANCE_ID_1="i-***1"  # 替换为我们要调整权重的ECS实例ID
    ECS_INSTANCE_ID_2="i-***2"  # 替换为我们要调整权重的ECS实例ID
    ECS_INSTANCE_ID_3="i-***3"  # 替换为我们要调整权重的ECS实例ID
    NEW_WEIGHT=0         # 设置权重值0-100之间


    # 调整ECS实例的权重
    /usr/local/sbin/aliyun slb SetBackendServers --RegionId $REGION \
                                                 --LoadBalancerId $LOAD_BALANCER_ID \
                                                 --BackendServers "[{\"ServerId\":\"$ECS_INSTANCE_ID_1\",\"Weight\":\"$NEW_WEIGHT\",\"Port\":\"80\"},{\"ServerId\":\"$ECS_INSTANCE_ID_2\",\"Weight\":\"$NEW_WEIGHT\",\"Port\":\"80\"},{\"ServerId\":\"$ECS_INSTANCE_ID_3\",\"Weight\":\"$NEW_WEIGHT\",\"Port\":\"80\"}]"


    # 检查调整结果
    if [ $? -eq 0 ]; then
        echo "ECS实例的权重已成功调整为 $NEW_WEIGHT。"
    else
        echo "调整ECS实例的权重失败。"
    fi
    --BackendServers "[{\"ServerId\":\"$ECS_INSTANCE_ID_1\",\"Weight\":\"$NEW_WEIGHT\",\"Port\":\"80\"},{\"ServerId\":\"$ECS_INSTANCE_ID_2\",\"Weight\":\"$NEW_WEIGHT\",\"Port\":\"80\"},{\"ServerId\":\"$ECS_INSTANCE_ID_3\",\"Weight\":\"$NEW_WEIGHT\",\"Port\":\"80\"}]"
    此示例参数是同时给3个ECS节点权重做调整。
    运维笔谈已经开通AI智能对话功能,解答有关运维日常工作中遇到的问题以及经验分享,感兴趣的大佬来和我聊聊吧!对话 “阿里云k8s” 可以获取《阿里云Kubernetes项目实战手册》pdf。

    文章转载自运维笔谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论