Strickland can earn $450,000 in performance bonuses for games as part of the deal announced Sunday: $75,000 for 25, $100,000 for 34, $125,000 for 45 and $150,000 for 50.
He can make an additional $875,000 for games finished: $50,000 for 20, $175,000 for 30, $250,000 for 40 and $400,000 for 50.
The 30-year-old right-hander spent the past five seasons with San Francisco, going 14-14 with a 2.91 ERA. He was 3-5 with a 3.97 ERA last year, with 14 saves in 18 chances.
Strickland became a free agent when San Francisco failed to offer a contract by the Nov. 30 deadline.
Mariners general manager Jerry Dipoto said Strickland "has the ability and the track record to be an impact reliever in high-leverage situations" for the team.
To clear a roster spot, right-hander Max Povse was designated for assignment.
Strickland fractured his hand last season after punching a door following a blown save against the Miami Marlins and was sidelined from June 18 to Aug. 18.
In 2017, he made headlines when he hit Washington Nationals slugger Bryce Harper on the hip with a 98 mph fastball, which sparked a benches-clearing incident. It was the first time Strickland had faced Harper since Harper hit two home runs off him in the 2014 National League Division Series. Strickland was suspended six games by Major League Baseball for his role in the brawl, which ended with him being dragged to the Giants' dugout by several of his teammates.
Information from The Associated Press was used in this report.