First, let me disagree with some of my fellow answerers: I would not openly declare "you shall not speak about compensation with each other". People will talk anyways, and during this time when most of your team is pissed off at management (read: you), making declarations about what they can and cannot do will only inflame an already tense situation.
After that, be open and honest. Most people on your team will be adults with years of experience in their careers. They know that your hands are tied, and they know how things work. "Bob, you've been doing a great job, but I just don't have the budget to get you what you deserve." "Alice, you've been doing a good job, but you're already at the upper end of our pay scale, but you've not yet done enough to get a promotion. Here's what you can work on." And so on.
For now, I would bring it up during your 1:1's with people. "Yes, Tom got a big raise this year, because he knows XYZ and nobody else does" or "because he was underpaid more than everyone else.".
In general, people understand that not everyone makes the same amount. They'll be fine with this inequality as long as it is fair. Since your team communicates their compensation, your job will be making sure your team understands why compensation is the way it is, and address perceived unfairness.
Which is of course far easier if your compensation is actually fair...