xuekailun 5 months ago
parent
commit
7d82ecd838

+ 10 - 10
longvideoapi/longvideo_restart.py

@@ -3,7 +3,7 @@ import time
 import docker
 import longvideoapi_config
 import utils
-from longvideo_update import server_health_check
+from longvideoapi_update_k import server_health_check
 
 logging.basicConfig(level=logging.INFO,
                     format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
@@ -14,14 +14,14 @@ def server_restart(alb_client, instance_id, image_name):
     try:
         logging.info(f"Restarting instance: {instance_id}")
         # 获取ip
-        ip_address = utils.get_ip_address(client=alb_client, instance_id=instance_id)
+        ip_address = utils.get_ip_address(alb_client=alb_client, instance_id=instance_id)
         logging.info(f"IP address: {instance_id}/{ip_address}")
 
         # 摘流量
-        utils.set_instance_weight_process_with_alb(client=alb_client,
-                                                   slb_id_list=longvideo_config.server_group_id_list,
+        utils.set_instance_weight_process_with_alb(alb_client=alb_client,
+                                                   server_group_id_list=longvideoapi_config.server_group_id_list,
                                                    instance_id_list=instance_id,
-                                                   weight_list=[(0, 15)])
+                                                   weight_list=[(0, 20)])
         logging.info(f"Set weight to 0 for instance: {instance_id}")
 
         # 连接 Docker 客户端并重启容器
@@ -38,7 +38,7 @@ def server_restart(alb_client, instance_id, image_name):
         # 设置权重
         add_weight_list = [(10, 5), (20, 5), (40, 5), (60, 5), (80, 5), (100, 5)]
         utils.set_instance_weight_process_with_alb(alb_client,
-                                                   longvideo_config.server_group_id_list,
+                                                   longvideoapi_config.server_group_id_list,
                                                    instance_id,
                                                    add_weight_list)
         logging.info(f"Server restart finished, instance: {instance_id}/{ip_address}")
@@ -50,13 +50,13 @@ def server_restart(alb_client, instance_id, image_name):
 def main():
     try:
         alb_client = utils.connect_alb_client(
-            access_key_id=longvideo_config.alb_client_params['access_key_id'],
-            access_key_secret=longvideo_config.alb_client_params['access_key_secret']
+            access_key_id=longvideoapi_config.alb_client_params['access_key_id'],
+            access_key_secret=longvideoapi_config.alb_client_params['access_key_secret']
         )
 
         # 获取 ALB 下所有机器
-        online_instance_ids = utils.get_instance_ids(client=alb_client,
-                                                     server_group_id=longvideo_config.server_group_id_list[0])
+        online_instance_ids = utils.get_instance_ids(alb_client=alb_client,
+                                                     server_group_id=longvideoapi_config.server_group_id_list[0])
         online_instance_count = len(online_instance_ids)
         logging.info(f"Online instance count: {online_instance_count}.")
         logging.info(f"Online instance ids: {online_instance_ids}")

+ 7 - 10
longvideoapi/longvideoapi_grayscale_update.py

@@ -15,15 +15,15 @@ ess_instances = []
 remove_container_instances = []
 
 
-def server_health_check(client, instance_id):
+def server_health_check(ecs_client, instance_id):
     """
     服务健康检查
-    :param client: 客户端连接
+    :param ecs_client: 客户端连接
     :param instance_id: instanceId
     :return:
     """
     global health_instances
-    ip_address = utils.get_ip_address(client=client, instance_id=instance_id)
+    ip_address = utils.get_ip_address(ecs_client=ecs_client, instance_id=instance_id)
     while True:
         health_check_url = f"http://{ip_address}:8080/longvideoapi/test"
         try:
@@ -40,15 +40,15 @@ def server_health_check(client, instance_id):
             time.sleep(10)
 
 
-def remove_container_image(client, instance_id, container_name_list):
+def remove_container_image(ecs_client, instance_id, container_name_list):
     """
     移除旧容器并删除旧镜像
-    :param client: 客户端连接
+    :param ecs_client: 客户端连接
     :param instance_id: instanceId type-string
     :param container_name_list: 容器名称 type-list
     :return:
     """
-    ip_address = utils.get_ip_address(client=client, instance_id=instance_id)
+    ip_address = utils.get_ip_address(ecs_client=ecs_client, instance_id=instance_id)
     logging.info(f"服务器信息:{instance_id}/{ip_address}")
     client = docker.DockerClient(base_url=f'tcp://{ip_address}:2375', timeout=60)
 
@@ -104,7 +104,7 @@ def update_instance(ecs_client, alb_client, instance_id, version):
     logging.info(f"update instance: {instance_id}")
     # 1. 摘流量,将权重降为0
     health_instance_ids = [instance_id]
-    weight_list = [(0, 15)]  # 设置权重为0,等待15
+    weight_list = [(0, 20)]  # 设置权重为0,等待20
     utils.set_instance_weight_process_with_alb(alb_client,
                                                longvideoapi_config.server_group_id_list,
                                                health_instance_ids,
@@ -145,7 +145,6 @@ def update_instance(ecs_client, alb_client, instance_id, version):
     time.sleep(10)
     # 使用 ALB 的函数挂载实例
     # health_instance_ids = [instance_id for instance_id, _ in health_instances]
-    # todo
     # for server_group_id in longvideoapi_config.server_group_id_list:
     #     for instance_id in health_instance_ids:
     #         utils.add_servers_to_server_group(alb_client, server_group_id, instance_id, weight=0)
@@ -164,8 +163,6 @@ def main():
         version = sys.argv[1]
         alb_client = utils.connect_alb_client(access_key_id=longvideoapi_config.alb_client_params['access_key_id'],
                                               access_key_secret=longvideoapi_config.alb_client_params['access_key_secret'])
-        # todo
-
         ecs_client = utils.connect_client(access_key_id=longvideoapi_config.ecs_client_params['access_key_id'],
                                              access_key_secret=longvideoapi_config.ecs_client_params[
                                                  'access_key_secret'],

+ 1 - 2
longvideoapi/longvideoapi_reduce_with_count.py

@@ -18,7 +18,6 @@ def remove_instances(ecs_client, alb_client, instance_ids):
     :return: None
     """
     # 1. 摘除流量
-    # todo 20
     weight_list = [(0, 20)]  # 设置权重为0,等待20秒
     try:
         utils.set_instance_weight_process_with_alb(alb_client,
@@ -83,7 +82,7 @@ def main():
             access_key_id=longvideoapi_config.alb_client_params['access_key_id'],
             access_key_secret=longvideoapi_config.alb_client_params['access_key_secret']
         )
-        # todo
+
         ecs_client = utils.connect_client(
             access_key_id=longvideoapi_config.ecs_client_params['access_key_id'],
             access_key_secret=longvideoapi_config.ecs_client_params['access_key_secret'],

+ 5 - 5
longvideoapi/longvideoapi_scaling_k_count.py

@@ -10,11 +10,12 @@ import longvideoapi_config
 
 from concurrent.futures import ThreadPoolExecutor
 
+from longvideoapi.longvideoapi_config import alb_client_params
 
 health_instances = []
 
 
-def longvideo_health_check(ecs_client, instance_id, max_wait_time=None):
+def longvideoapi_health_check(ecs_client, instance_id, max_wait_time=None):
     """
     服务健康检查
     :param ecs_client: 客户端连接
@@ -78,9 +79,9 @@ async def ess_instance(ecs_client, alb_client, ess_count, max_workers):
     health_instances = []
     max_wait_time = 180
     loop = asyncio.get_running_loop()
-    executor = ThreadPoolExecutor(max_workers=max_workers) # todo
+    executor = ThreadPoolExecutor(max_workers=max_workers)
     tasks = [
-        loop.run_in_executor(executor, longvideo_health_check, *args) for args in
+        loop.run_in_executor(executor, longvideoapi_health_check, *args) for args in
         [(alb_client, instance_id, max_wait_time) for instance_id in ess_instance_ids]
     ]
     await asyncio.wait(tasks)
@@ -109,8 +110,7 @@ def main():
                                              region_id=longvideoapi_config.ecs_client_params['region_id'])
         alb_client = utils.connect_alb_client(
             access_key_id=longvideoapi_config.alb_client_params['access_key_id'],
-            access_key_secret=longvideoapi_config.alb_client_params['access_key_secret']  # todo
-
+            access_key_secret=longvideoapi_config.alb_client_params['access_key_secret']
         )
         # 获取批量创建ECS实例的数量
         ess_instance_count = int(sys.argv[1])

+ 2 - 3
longvideoapi/longvideoapi_update_k.py

@@ -16,10 +16,10 @@ ess_instances = []
 remove_container_instances = []
 
 
-def server_health_check(client, instance_id):
+def server_health_check(ecs_client, instance_id):
     """
     服务健康检查
-    :param client: 客户端连接
+    :param ecs_client: 客户端连接
     :param instance_id: instanceId
     :return:
     """
@@ -238,7 +238,6 @@ def remove_instances(ecs_client, alb_client, instance_ids):
     """
     # 1. 摘流量
     weight_list = [(0, 20)]  # 设置权重为0,等待20秒
-    # todo
     try:
         utils.set_instance_weight_process_with_alb(alb_client,
                                                    longvideoapi_config.server_group_id_list,

+ 1 - 1
utils.py

@@ -427,7 +427,7 @@ def get_instances_status(ecs_client, instance_ids):
     """
     获取实例运行状态
     :param ecs_client:
-    :param instance_ids: instance_id, type-liist
+    :param instance_ids: instance_id, type-list
     :return:
     """
     request = DescribeInstanceStatusRequest()