Kabak spent the second half of last season on loan at Liverpool.
Kabak spent the second half of last season on loan at Liverpool making 13 appearances for the Reds, and the Canaries have an option to make his move permanent at the end of the 2021-22 campaign.
The 21-year-old, who has 12 Turkey caps to his name, played for Galatasaray and Stuttgart before joining Schalke in 2019.
“I’m very happy to be a part of this family,” Kabak told the Norwich website. “I’m looking forward to playing in front of the fans and getting some points.
“I spoke with the head coach and I’m really impressed by his project and what he said to me. I believe in him and his project.
“I played in the Premier League last year and I really enjoyed it, so I want to play again and that’s why I’m here. I want to play in the Premier League and to give something to the team.”
Head coach Daniel Farke added: “We were delighted to be able to bring him in, as there was a lot of competition for his signature. He is highly regarded by many clubs across Europe.
“Ozan has played for some big clubs and also has experience on the international stage with Turkey. He’s already had a taste of Premier League football at Liverpool, which says a lot about his potential. He’s also a great character.
“We want to help him reach his very best levels. We know he is capable to shine for us and improve a lot. We are really happy that we are able to do this piece of business.”