You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

1.Introduction      

    Manage New scheduler's containerPool, includes below features.

    1. Create prewarm container initially. 

    2. Backfill the prewarm container if possible.

    3. Cold start container based on the ContainerCreationMessage which get from ContainerManager using kafka.

    4. Delete container when get deleteContainerMessage from ContainerManager using kafka.

    4. Maintain several kind pools, e.g. busyPool, inProgressPool, warmedPool, prewarmedPool, prewarmStartingPool.

    5. Send memoryInfo to etcd every 1 second.

2.Design consideration


    1. Create prewarm container initially.

       On kubernetes env, the consuming time of create a pod is longer than common container, so it is better to not create all prewarm pod at the same time.

       this can avoid send a lot of creation pod request to kube api server.

    2. When create prewarm, need to support retry and cannot exceed the maximum retry limit.

    3. when backfill prewarm, need to avoid `creating a large number of additional prewarm`.

    4. when create container, if doesn't have prewarm container which its memory equal with the action's memory, need to support `choose a higher memory prewarm container`, this is optional.



  • No labels