The former West Ham United and England centre-half turned down the offer of a new contract at Brighton & Hove Albion in favour of a return to the Barclays Premier League with Leicester. He will sign a one-year deal on July 1 after his current contract expires.
The 35-year-old played 47 games this season for Brighton, winning the club's player of the year award and helping them reach the play-offs where they lost to Derby County.
Upson started his career at Luton Town and also played for Arsenal, Birmingham City and Stoke City, before joining Brighton after an initial loan spell. He won 22 international caps for England.
Upson is the second new signing to be announced by Leicester in the last 24 hours following the arrival of goalkeeper Ben Hamer.