W czasach juniorskich trenował w FK Bežanija, którego jest wychowankiem[1]. W 2002 roku dołączył do seniorskiego zespołu tego klubu[1]. 1 stycznia 2017 został piłkarzem FK Partizan[1]. Pierwszy mecz ligowy w jego barwach rozegrał 24 lutego 2007 przeciwko FK Crvena zvezda (4:2 dla Partizana)[2]. Wraz z Partizanem w sezonie 2007/2008 zdobył mistrzostwo Serbii[3]. 4 stycznia 2008 odszedł za 2,3 miliona euro do niemieckiej Borussii Dortmund[1]. W Bundeslidze zadebiutował 2 lutego 2008 w zremisowanym 3:3 spotkaniu z MSV Duisburg[4]. Od 2 lutego do 30 czerwca 2009 przebywał na wypożyczeniu w TSV 1860 Monachium, po czym został wykupiony przez ten klub za 1,5 miliona euro na zasadzie transferu definitywnego[1]. Transfer objął także przenosiny Svena Bendera do Dortmundu[5]. Dla TSV Monachium Rukavina w latach 2009–2012 rozegrał w sumie 112 meczów w 2. Bundeslidze[6]. 20 lipca 2012 został piłkarzem hiszpańskiego Realu Valladolid[1]. W Primera División po raz pierwszy zagrał 20 sierpnia 2012 przeciwko Realowi Saragossa[7]. 8 lipca 2014 odszedł do Villarrealu CF[1].