The 29-year-old left Premier League club Swansea following their relegation to the Championship last season after an 18th-placed league finish.
"He is a player with lots of Premier League and international experience and it was an easy decision to bring him here," manager Rafa Benitez told the Newcastle's website.
Ki played for South Korea against Sweden and Mexico at the World Cup in Russia but was ruled out of the final Group F match against Germany due to a calf injury.
"I was always pleasantly surprised when I came to St. James' Park to play against Newcastle – there is a great atmosphere and the passion from the fans is a great support to the players," Ki said.
"Everyone knows how big this club is so I'm really looking forward to playing with my teammates and for the fans," he added.
The 29-year-old will officially join Newcastle on July 1 and his arrival follows that of goalkeeper Martin Dubravka, who sealed a permanent move to the Magpies after a six-month loan spell last season.
(Reporting by Arjun Panchadar in Bengaluru; Editing by Toby Chopra)