code: func (v *Vibranium) ReallocResource(opts *pb.ReallocOptions, stream pb.CoreRPC_ReallocResourceServer) error {
  	v.taskAdd("ReallocResource", true)
  	defer v.taskDone("ReallocResource", true)
  	ids := opts.GetIds()
  	if len(ids) == 0 {
  		return types.ErrNoContainerIDs
  	}
  
  	//这里不能让 client 打断 remove
  	ch, err := v.cluster.ReallocResource(context.Background(), ids, opts.Cpu, opts.Mem)
  	if err != nil {
  		return err
  	}
  
  	for m := range ch {
  		if err = stream.Send(toRPCReallocResourceMessage(m)); err != nil {
  			v.logUnsentMessages("ReallocResource", m)
  		}
  	}
  	return err
  }
docs: // ReallocResource realloc res for containers